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

问题描述 投票:2回答:2

我在为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.xct‌oolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH

要么

问题是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这些都不是官方的..但到目前为止对我有用。

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

ios xcode ios-simulator dylib xctest
2个回答
8
投票

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

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

另请注意:订单很重要!

附:来自GraehamF对于Build -> Clean并重新启动Xcode总是一件好事,所以改变要生效


1
投票

当我使用XCode项目遇到此错误时,我打开文件???.xcodeproj(在SubLime文本编辑器中)并删除以下行。警告将不再存在!

LIBRARY_SEARCH_PATHS = (
    "\"${PROJECT_DIR}/../../../../../usr/lib\"/**",
    "\"${PROJECT_DIR}/../../../../../usr/lib\"/**",
);
© www.soinside.com 2019 - 2024. All rights reserved.