xcodebuild - iOS - 链接错误的dylib

时间:2013-10-21 14:33:10

标签: ios xcode ld xcodebuild

我正在尝试使用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重新添加到“Link Binary with Libraries”
  • 将SDK目录添加到“Library Search Paths”
  • 将“-isysroot $ SDKROOT”添加到“Other Linker Flags”

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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