我在使用最新的 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 中不是必需的,所以它只是 ld 在当前的测试版中存在错误,还是我能做些什么?