Swift build on Ubuntu: обработка пробелов в именах объектных файлов - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь создать быстрое приложение на 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 по умолчанию, может быть, это может быть проблемой?!

1 Ответ

0 голосов
/ 16 февраля 2019

Я не нашел прямого решения, но как заставить его работать.Возможно, это поможет кому-то с такой же проблемой:

Убедитесь, что вы используете Swift версии 4.2.2 (а не, например, 4.2.0).Каким-то образом они явно исправили эту проблему между этими версиями.?♂️

...