包内模块依赖

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