Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu上的Swift构建:处理对象文件名中的空白_Swift_Linux_Ubuntu_Clang - Fatal编程技术网

Ubuntu上的Swift构建:处理对象文件名中的空白

Ubuntu上的Swift构建:处理对象文件名中的空白,swift,linux,ubuntu,clang,Swift,Linux,Ubuntu,Clang,我正试图在Ubuntu 18.04上构建一个swift应用程序。这是一个包含以下包的应用程序。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"),

我正试图在Ubuntu 18.04上构建一个swift应用程序。这是一个包含以下
包的应用程序。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'
我正在使用,不幸的是,它在文件名中有一些空格,例如
单词和位.swift
。这将导致文件
.build/x86_64-unknown-linux/debug/BigInt.build/Words and Bits.swift.o
,但linux上的swift编译器似乎不允许在这些文件名中使用空格

现在,我可以分叉存储库并更改所有文件名。但也许还有另一个更简单的解决方案


额外的困惑:我试着在docker容器()中做同样的事情,但效果很好。。。似乎他们使用的是clang-3.8而不是默认的clang-6,也许这就是问题所在

我没有找到一个直接的解决方案,但找到了一个让它工作的方法。也许它会帮助有同样问题的人:


确保使用Swift版本4.2.2(而不是例如4.2.0)。他们显然在这些版本之间解决了这个问题 我没有找到一个直接的解决方案,但找到了一个让它工作的方法。也许它会帮助有同样问题的人:


确保使用Swift版本4.2.2(而不是例如4.2.0)。他们显然在这些版本之间解决了这个问题。在这里,似乎没有任何编译器是罪魁祸首。相反,conpiler没有被正确调用。请显示您的构建命令。很好,我刚刚添加了构建命令,它只是
swift build
。如果没有构建文件的内容,它的信息量就不算太大。我必须承认,我不能100%确定您想要什么进一步的信息。我添加了Package.swift文件,但没有深入探讨这些工具的工作方式。我重新阅读了您的问题。看起来您正在使用一个固定的构建文件。我最初以为你自己写的,想让你展示出来。实际上,我不知道swift build是如何工作的,但我100%确定它与clang版本无关。任何版本都可以使用包含空格的文件名,这不需要特别考虑。当文件名通过shell时,空格可能会导致文件名出现问题。构建系统做到了这一点,而clang没有。看起来这里没有任何编译器应该受到责备。相反,conpiler没有被正确调用。请显示您的构建命令。很好,我刚刚添加了构建命令,它只是
swift build
。如果没有构建文件的内容,它的信息量就不算太大。我必须承认,我不能100%确定您想要什么进一步的信息。我添加了Package.swift文件,但没有深入探讨这些工具的工作方式。我重新阅读了您的问题。看起来您正在使用一个固定的构建文件。我最初以为你自己写的,想让你展示出来。实际上,我不知道swift build是如何工作的,但我100%确定它与clang版本无关。任何版本都可以使用包含空格的文件名,这不需要特别考虑。当文件名通过shell时,空格可能会导致文件名出现问题。构建系统可以做到这一点,而clang则不行。