【发布时间】:2015-09-25 14:44:30
【问题描述】:
我在使用最新的 Xcode 7-beta clang 为 iOS 9 编译 C 库 (gmp) 时遇到问题。我正在尝试生成位码以停止 Xcode 中的所有警告(并且我想在位码中生成这些库)。但是,我什至一开始就无法编译该库。 ./configure 失败,在查看 config.log 后,似乎 ld 是问题所在,因为它失败并显示“ld: library not found for -lSystem”。这是我过去用来编译 gmp 的命令:
./configure CC=clang CPP="/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -E" CPPFLAGS="-isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/ -L /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/ -miphoneos-version-min=7.0 -arch armv7 -target arm-apple-darwin
-L /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
我添加的标志是查看这是否有助于 ld 找到要链接的所需库,但无论我是否包含该选项,它都会失败并出现相同的错误。我没有在上述命令中包含编译为位码的选项,因为我什至无法使用我以前使用的相同命令首先编译它。我注意到,当我在“将二进制文件与库链接”下将 gmp .a 文件添加到 xcode 时,ld 找不到库。我必须手动将项目添加到项目设置中的 ld 搜索路径,以便 ld 找到库。这在 Xcode 6 中不是必需的,所以它只是在当前测试版中存在错误,还是我能做些什么?
【问题讨论】:
标签: static-libraries ld gmp ios9 xcode7-beta2