我正试图在Ubuntu18.04上构建一个快速应用程序。这是一个水蒸气应用程序,有以下Package.swift
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "Project",
dependencies: [
.package(url: "https://github.com/vapor/vapor.git", from: "3.0.0"),
.package(url: "https://github.com/vapor/fluent-sqlite.git", from: "3.0.0"),
.package(url: "https://github.com/vapor-community/vapor-ext.git", from: "0.3.0"),
.package(url: "https://github.com/attaswift/BigInt.git", from: "3.1.0")
],
targets: [
.target(name: "App", dependencies: ["FluentSQLite", "Vapor", "ServiceExt", "BigInt"]),
.target(name: "Run", dependencies: ["App"]),
.testTarget(name: "AppTests", dependencies: ["App"])
]
)现在,我正在调用swift build:获取包工作,编译工作,但是在以下许多错误消息中链接结果:
clang: error: no such file or directory: '/home/ubuntu/project/.build/x86_64-unknown-linux/debug/BigInt.build/Words'
clang: error: no such file or directory: 'and'
clang: error: no such file or directory: 'Bits.swift.o'我正在使用这个BigInt包,不幸的是,它在文件名中有一些空格,例如Words and Bits.swift。这会导致文件.build/x86_64-unknown-linux/debug/BigInt.build/Words and Bits.swift.o,但是Linux上的快速编译器似乎不允许在这些文件名中使用空格。
现在,我可以分叉存储库并更改所有文件名。但也许还有另外一个更容易解决这个问题的办法?
额外的困惑:我试图在一个码头容器(码头文件)中做同样的工作。似乎他们正在使用clang-3.8而不是默认clang-6,这可能是问题所在?!
发布于 2019-02-16 19:00:32
我没有找到一个直接的解决方案,而是一个让它发挥作用的方法。也许它能帮助那些有同样问题的人:
确保使用Swift版本4.2.2 (而不是4.2.0)。不知怎么的,他们显然解决了这些版本之间的这个问题。♂️
https://stackoverflow.com/questions/54723017
复制相似问题