ld:为iOS模拟器构建,但是与dylib链接?

Pau*_*bre 3 xcode dylib ios ios-simulator xctest

我在为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)
Run Code Online (Sandbox Code Playgroud)

我在发布这个问题之前检查过,但我在stackoverflow中找到的答案,比如运行这个,

export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xct?oolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

要么

问题是Xcode 5用clang替换了gcc并添加了一个"-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.xct oolchain/usr/bin:/ Applications /Xcode5-DP6.app/Contents/Developer/usr/bin:$PATH这些都不是官方的..但到目前为止对我有用.

我真的不明白该怎么做.有什么帮助吗?

Oss*_*sir 9

检查Build Settings您的测试目标.这个值看起来应该类似:

在此输入图像描述

如果您有任何转义符号,请考虑修复它.我在这里:\".我刚删除它们

另请注意:订单很重要!

来自GraehamFPS对于Build -> Clean重新启动Xcode 总是一件好事,所以更改才会生效