封装内模块依赖性

时间:2016-03-15 23:01:41

标签: swift swift-package-manager

我有一个Swift包(you can download here, its a pure Swift markdown implementation),它有两个模块,一个是库,第二个是可执行文件。运行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

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

我想问题是:在包中的模块中是否有任何具体必须要做的事情以确保它们链接在一起?

1 个答案:

答案 0 :(得分:1)

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

1。按照Swift.or的安装说明进行操作 2. 设置PATH。

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