Xcode 7.1没有从/ usr / local / lib库链接

时间:2015-11-21 07:16:26

标签: c xcode swift

我正在构建一个Swift命令行应用程序,它引用了/ usr / local / lib中的第三方库(netcdf)。我在项目中有一个桥接头,在进行适当的调用时,没有错误。因此,我非常有信心在桥接文件中找到了#include。

在Build Settings中,我已将/ usr / local / lib添加到Library Search Paths,将-lnetcdf添加到其他Linker Flags。

但是我发现链接失败了。具体来说,我看到了undefined symbols消息。查看单击错误时显示的ld命令,我可以看到-L / usr / local / lib就在那里。但是-lnetcdf不是。

我还需要做什么才能让-l进入链接命令?

1 个答案:

答案 0 :(得分:0)

经过三个小时的尝试解决这个问题后,我终于想到了这个问题。花了大约15分钟写了一个Makefile。

CLIBS=-lnetcdf
SWFILES=main.swift NCUtil.swift
SWIMPORT=-import-objc-header ../GSIP-Bridging-Header.h
SWIFTLIB=/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 $(SWIFTLIB) $(SLIBS) $(CLIBS) -rpath $(SWIFTLIB) -macosx_version_min 10.10 -no_objc_category_merging -o $@

%.o: %.swift
    swiftc -c $(SWFILES) -target x86_64-apple-darwin14.5.0 -I /usr/local/include -I /usr/include $(SWIMPORT) -module-name=GSIP

.PHONY: clean
clean:
    rm -f *.o GSIP