Я пытаюсь создать быстрое приложение на Ubuntu 18.04.Это приложение vapour со следующим 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
, но компилятор swift в Linux, по-видимому, не допускает пробелы в этих именах файлов.
Теперь я могу разложить репозиторий и изменить все имена файлов.Но, может быть, есть другое, более простое решение этой проблемы?
Дополнительная путаница: Я попытался сделать то же самое в контейнере докера ( dockerfile ), и это работает... Кажется, что они используют clang-3.8 вместо clang-6 по умолчанию, может быть, это может быть проблемой?!