0

我正在尝试使用 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”添加到“其他链接器标志”
4

2 回答 2

2

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

2)在搜索路径中——framework,header,library search path有sdk的正确路径

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

于 2013-10-21T14:54:43.233 回答
0

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

于 2013-10-21T14:41:39.870 回答