Не удается создать сервер Kitura с помощью адаптера Postgres с Swift 3.1

В настоящее время я пытаюсь создать пример сервера Kitura, обращающегося к базе данных Postgres. В github есть несколько примеров проектов, изначально опубликованных IBM. Но с большим комментарием вверху о том, что они больше не поддерживают этот проект.

В настоящее время я работаю над проектом TodoList-SWiftKuery.

Как сказано в инструкции клонирую проект и ввожу команду сборки

swift build

Шаг ссылки завершается неудачно... вот журнал консоли, когда что-то начинает терпеть неудачу. Я обрезаю его, когда он начинает становиться излишним.

Linking ./.build/debug/Server
ld: warning: Auto-Linking supplied '/usr/local/lib/libswiftDispatch.dylib', /usr/local/lib/libswiftDispatch.dylib compiled with older version of Swift language (2.0) than previous files (3.0)
ld: warning: Auto-Linking supplied '/usr/local/lib/libswiftIOKit.dylib', /usr/local/lib/libswiftIOKit.dylib compiled with older version of Swift language (2.0) than previous files (3.0)
ld: warning: Auto-Linking supplied '/usr/local/lib/libswiftObjectiveC.dylib', /usr/local/lib/libswiftObjectiveC.dylib compiled with older version of Swift language (2.0) than previous files (3.0)
ld: warning: Auto-Linking supplied '/usr/local/lib/libswiftDarwin.dylib', /usr/local/lib/libswiftDarwin.dylib compiled with older version of Swift language (2.0) than previous files (3.0)
ld: warning: Auto-Linking supplied '/usr/local/lib/libswiftFoundation.dylib', /usr/local/lib/libswiftFoundation.dylib compiled with older version of Swift language (2.0) than previous files (3.0)
ld: warning: Auto-Linking supplied '/usr/local/lib/libswiftCoreGraphics.dylib', /usr/local/lib/libswiftCoreGraphics.dylib compiled with older version of Swift language (2.0) than previous files (3.0)
ld: warning: Auto-Linking supplied '/usr/local/lib/libswiftCore.dylib', /usr/local/lib/libswiftCore.dylib compiled with older version of Swift language (2.0) than previous files (3.0)
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_SwiftObject", referenced from:
      __TMC6Server6Config in Config.swift.o
      __TMC9LoggerAPI3Log in Logger.swift.o
      __TMC6Socket6Socket in Socket.swift.o
      __TMC10SSLService10SSLService in SSLService.swift.o
      __TMC9KituraNet10BufferList in BufferList.swift.o
      __TMC9KituraNet13ClientRequest in ClientRequest.swift.o
      __TMC9KituraNetP33_49D1A1CDD172EED7D059EF5A54A69CBD11CurlInvoker in ClientRequest.swift.o

Мой основной вопрос: как мне это исправить!

Но конкретный вводный вопрос: где старые библиотеки Swift 2.0 libswiftDispatch.dylib et.al. указано? Где я могу исправить это. Его нет в файле менеджера пакетов.

import PackageDescription

let package = Package(
    name: "TodoList",
    targets: [
        Target(
            name: "Server",
            dependencies: [.Target(name: "TodoList")]
        ),
        Target(
            name: "TodoList"
        )
    ],
    dependencies: [
        .Package(url: "https://github.com/IBM-Swift/Kitura.git",                 majorVersion: 1),
        .Package(url: "https://github.com/IBM-Swift/HeliumLogger.git",           majorVersion: 1),
        .Package(url: "https://github.com/IBM-Swift/Swift-cfenv.git",            majorVersion: 1),
        .Package(url: "https://github.com/IBM-Swift/Swift-Kuery-PostgreSQL.git", majorVersion: 0)
    ]
)  

Помощь или указатели на дополнительную документацию будут оценены.


person ahalls    schedule 21.05.2017    source источник


Ответы (1)


Оказывается, у меня была старая версия «kylef/swiftenv: Swift Version Manager»… Я сделал brew remove swiftgen, устранил проблему.

Я нашел это с помощью этой команды ... когда я исследовал, откуда взялись старые библиотеки.

ls -l /usr/local/lib/libswift*

Много таких результатов libswiftObjectiveC.dylib -> ../Cellar/swiftgen/2.0.0/lib/libswiftObjectiveC.dylib

person ahalls    schedule 21.05.2017