【问题标题】:Compiling C Library for iOS 9 From Command Line, Xcode 7-beta 2从命令行,Xcode 7-beta 2 为 iOS 9 编译 C 库
【发布时间】: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.xct‌​oolchain/usr/bin/clang -E" CPPFLAGS="-isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Deve‌​loper/SDKs/iPhoneOS.sdk/ -L /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Deve‌​loper/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/Deve‌​loper/SDKs/iPhoneOS.sdk/usr/lib/

我添加的标志是查看这是否有助于 ld 找到要链接的所需库,但无论我是否包含该选项,它都会失败并出现相同的错误。我没有在上述命令中包含编译为位码的选项,因为我什至无法使用我以前使用的相同命令首先编译它。我注意到,当我在“将二进制文件与库链接”下将 gmp .a 文件添加到 xcode 时,ld 找不到库。我必须手动将项目添加到项目设置中的 ld 搜索路径,以便 ld 找到库。这在 Xcode 6 中不是必需的,所以它只是在当前测试版中存在错误,还是我能做些什么?

【问题讨论】:

    标签: static-libraries ld gmp ios9 xcode7-beta2


    【解决方案1】:

    好的,这就是有效的方法。将您的 xcode 开发设置为使用新的编译器

    sudo xcode-select -s /Applications/Xcode-beta.app
    

    然后,我使用了这个配置:

    ./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/ -fembed-bitcode -miphoneos-version-min=7.0 -arch armv7 -target arm-apple-darwin" --host=aarch64-apple-darwin --disable-assembly --enable-static --disable-shared --disable-thread-safe --enable-cxx
    

    在编译 mpfr 和 mpc 时也可以使用上述方法。

    【讨论】:

      猜你喜欢
      • 2015-09-24
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      • 2014-11-25
      • 1970-01-01
      • 2016-07-05
      相关资源
      最近更新 更多