我正在构建一个Swift命令行应用程序,其中引用了/usr/local/lib中的第三方库(netcdf)。我在项目中有一个桥接头,在进行适当的调用时,没有错误。所以我很有信心包含在桥接文件中。
在构建设置中,我已将/usr/local/lib添加到库搜索路径,并将-lnetcdf添加到其他链接器标志。
但是我看到一个链接失败。具体来说,我看到了一条undefined symbols
消息。查看单击错误时显示的ld命令,可以看到-L/usr/local/lib。但是-lnetcdf不是。
我还需要做什么才能让-l进入link命令?
最佳答案
经过三个小时的努力,我终于想出了一个办法,花了15分钟写了一个Makefile。
CLIBS=-lnetcdf
SWFILES=主.swift NCUtil.swift
SWIMPORT=-导入objc头../GSIP桥接头.h
swift lib=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx
SLIBS=-lSystem-lobjc
GSIP:main.o NCUtil.o
ld$^-arch x86椆64-L$(快速库)$(SLIBS)$(CLIBS)-rpath$(快速库)-macosx U版本最低10.10-无objc U类别合并-o$@
%.o:%斯威夫特
swiftc-c$(SWFILES)-目标x86_64-apple-darwin14.5.0-I/usr/local/include-I/usr/include$(SWIMPORT)-模块名=GSIP
.假:干净
干净:
rm-f*.o GSIP协议
关于c - Xcode 7.1无法从/usr/local/lib库链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33840767/