【发布时间】:2014-05-30 07:23:53
【问题描述】:
我在为 Simulator 编译我的应用程序时遇到问题。在设备中运行完美,但一旦我尝试在模拟器中编译,我得到以下错误:
ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我在发布这个问题之前检查过,但是我在stackoverflow中找到的答案,喜欢运行这个,
export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH
或
问题在于 Xcode 5 将 gcc 替换为 clang 并添加了一个“-triple”选项,将 OSX 指定为目标。如果在两个 gcc 命令行上都传递“-miphoneos-version-min=7.0”,它就可以工作。如果将“--verbose”传递给 gcc,则可以看到 clang 命令行。还需要添加到 Xcode 5 的 PATH 以便 cmake 可以找到必要的工具:export PATH=/Applications/Xcode5-DP6.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications /Xcode5-DP6.app/Contents/Developer/usr/bin:$PATH 这些都不是官方的..但到目前为止对我有用。
我真的不明白如何做到这一点。请帮忙?
【问题讨论】:
-
我猜你的问题是胖静态库问题。您需要为设备和模拟器编译静态库。 stackoverflow.com/questions/3520977/… 这个链接可能会有所帮助。另外你需要搜索静态脂肪库。
-
感谢 Güngör,但没有更简单的方法无需在命令工具 makefile 中创建和编译?
-
我在不同库的 iOS6 上遇到了同样的问题。它知道这很难做到。不幸的是,这是我知道的唯一方法
标签: ios xcode ios-simulator dylib xctest