【问题标题】:xcodebuild -- iOS -- Linking wrong dylibxcodebuild -- iOS -- 链接错误的dylib
【发布时间】:2013-10-30 02:41:07
【问题描述】:

我正在尝试使用 xcodebuild 编译一个 iOS 项目。该项目通过 XCode GUI 构建良好;但是,使用 xcodebuild 构建失败。

问题似乎是该项目需要 libiconv.dylib 并且 xcodebuild 将其链接到错误的库位置。就像它在 /sw/lib/ 中查找包含 x86 版本的库一样,而不是链接到 XCode 中包含的 armv7/6 版本。

我的问题是如何告诉 Ld 查看 SDK 目录而不是 /sw/lib/?????

这是构建命令:

xcodebuild -project MyProject.xcodeproj -target "release_iphone" -configuration Release -sdk "iphoneos7.0" PROVISIONING_PROFILE="${PROJ_PROF_UUID}"

这是我收到的错误:

ld: warning: ignoring file /sw/lib//libiconv.dylib, file was built for x86_64 which is not the architecture being linked (armv7s): /sw/lib//libiconv.dylib
Undefined symbols for architecture armv7s:
  "_iconv_open", referenced from:
      l2451 in libscanditsdk-iphone-3.1.1.a(mirasense.o)
  "_iconv", referenced from:
      l2451 in libscanditsdk-iphone-3.1.1.a(mirasense.o)
  "_iconv_close", referenced from:
      l2451 in libscanditsdk-iphone-3.1.1.a(mirasense.o)
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试过的事情:

  • 工作区/方案与项目/目标
  • 将 libiconv.dylib 重新添加到“将二进制文件与库链接”
  • 将 SDK 目录添加到“库搜索路径”
  • 将“-isysroot $SDKROOT”添加到“其他链接器标志”

【问题讨论】:

    标签: ios xcode ld xcodebuild


    【解决方案1】:

    错误可能有两个原因。在您的构建设置中(搜索) 1)构建选项 - 编译器 C/C++/objective C,它可以正常工作或那里没有支持选项

    2) 在搜索路径中 - 框架、标题、库搜索路径 有sdk的正确路径

    因为这两个是自 ios7 和 xcode 5 以来的常见问题。但第一点似乎对您的问题更可靠

    【讨论】:

    • “支持选项”是什么意思?我看起来还不错:“编译器 C/C++/ObjectiveC”->“默认编译器(Apple LLVM 5.0)
    • Nvm,看起来 #2 成功了,犯了一个菜鸟错误,忘记在搜索路径上设置递归选项,但请帮忙
    • 太棒了!它为你工作:) 请给我一票..如果你对我的回答感到满意
    【解决方案2】:

    据说该文件是为 64 位架构构建的。我认为您应该在项目中将您的应用架构从 armv7/armv7s 设置为 armv7/armv7s/arm64。

    【讨论】:

    • 我知道我在说什么,我如何告诉链接器寻找正确的文件
    猜你喜欢
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 2022-11-29
    • 2014-04-05
    相关资源
    最近更新 更多