包内模块依赖
Intra-Package Module Dependencies
我有一个 Swift 包 (you can download here, its a pure Swift markdown implementation),它有两个模块,一个是库,第二个是可执行文件。 运行 swift build
将正确找出构建库,然后构建可执行文件,但在尝试 link 时失败并出现错误
Undefined symbols for architecture x86_64:
"__TFE9SmarkDownSSg8markdownSS", referenced from:
_main in main.swift.o
ld: symbol(s) not found for architecture x86_64
当然,引用的符号是我正在尝试使用的方法(或者在本例中为 属性)(对字符串的扩展)。
我想问题是:在 包中 模块是否必须做任何特定的事情来确保它们 link 在一起?
我已经检查了你的项目,它为我编译了。
这里有几件事要检查:
1. 按照 Swift.or
中的安装说明进行操作
2. 设置路径。
export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}"
export TOOLCHAINS=swift
export SWIFT_EXEC=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/swiftc
3. 确保使用 git 2.0 或更高版本。
git --version
我有一个 Swift 包 (you can download here, its a pure Swift markdown implementation),它有两个模块,一个是库,第二个是可执行文件。 运行 swift build
将正确找出构建库,然后构建可执行文件,但在尝试 link 时失败并出现错误
Undefined symbols for architecture x86_64:
"__TFE9SmarkDownSSg8markdownSS", referenced from:
_main in main.swift.o
ld: symbol(s) not found for architecture x86_64
当然,引用的符号是我正在尝试使用的方法(或者在本例中为 属性)(对字符串的扩展)。
我想问题是:在 包中 模块是否必须做任何特定的事情来确保它们 link 在一起?
我已经检查了你的项目,它为我编译了。 这里有几件事要检查:
1. 按照 Swift.or
中的安装说明进行操作
2. 设置路径。
export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}"
export TOOLCHAINS=swift
export SWIFT_EXEC=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/swiftc
3. 确保使用 git 2.0 或更高版本。
git --version