c - Xcode 7.1 不从/usr/local/lib 库链接

标签 c xcode swift

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

在build设置中,我已将/usr/local/lib 添加到库搜索路径,并将 -lnetcdf 添加到其他链接器标志。

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

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

最佳答案

在尝试解决这个问题三个小时后,我最终想到了“把它填满”,并花了大约 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

关于c - Xcode 7.1 不从/usr/local/lib 库链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33840767/

相关文章:

ios - 如何过滤具有不同元素的数组?

从命令行调用 MATLAB 并保持打开状态以进行下一步处理 - Linux

c - 通过 char 指针输出不正确

c - c 中查找 12 位数字的质因数时出现溢出错误

swift - UIAlertView 已弃用?

xcode - 无法在安装了命令行工具的 Mavericks 上使用 xcodebuild

ios - iOS 中的 backBarButtonItem (Swift)

java - 从 C 客户端向 Java 服务器发送一个字符串

ios - 一次隐藏多个 UILabel

ios - (<UIPopoverPresentationController : 0x7fdb10687050>) should have a non-nil sourceView or barButtonItem set before the presentation occurs. '