1

我有一个 Swift 包(你可以在这里下载,它是一个纯 Swift markdown 实现),它有两个模块,一个是库,第二个是可执行文件。运行swift build将正确找出构建库,然后构建可执行文件,但在尝试链接错误时失败

Undefined symbols for architecture x86_64:
"__TFE9SmarkDownSSg8markdownSS", referenced from:
  _main in main.swift.o
ld: symbol(s) not found for architecture x86_64

当然,引用的符号是我尝试使用的方法(或在本例中为属性)(对字符串的扩展)。

我想问题是:对于包中的模块是否必须做任何特定的事情以确保它们链接在一起?

4

1 回答 1

1

我检查了你的项目,它为我编译。这里有几件事要检查:

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
于 2016-03-17T17:42:40.943 回答