我有一个Xcode项目,其中包括一个静态库项目,它使用另一个不支持iOS模拟器体系结构的静态库(Vuforia : libQCAR.a)。
Vuforia应用程序必须部署到要运行的设备上;它们不能在iOS模拟器中运行。
这是我的项目结构:
- Frameworks
- libMyStaticLibrary.a
- libQCAR.a
我的问题是,MyApp.xcodeproj不是为iOS模拟器构建的,因为libQCAR.a不是为i386体系结构构建的。
在为MyApp.xcodeproj构建libQCAR.a库时,是否需要让i386忽略它呢?我将能够禁用所有依赖于#if !(TARGET_IPHONE_SIMULATOR)库的代码。
发布于 2014-06-25 08:58:30
这个问题似乎非常类似于:Xcode:基于体系结构的条件构建设置(设备(ARM)与模拟器(i386))
我相信sergio的解决方案非常接近,但是您是否尝试过在其他Linker下指定到库的完整路径(可能没有"-l“--只是路径)?
发布于 2014-06-25 08:27:40
您可以使用条件生成设置指定仅在给定平台上链接的库,而不是以通常的方式将库添加到项目中。具体来说,您需要指定:
-lQCAR在“其他链接者旗帜”中。
看一看附加的图像,这将使事情更清楚(在图片中,我只链接模拟器,你会想要选择一个设备,我猜)。
另外,不要忘记将包含库的目录的路径添加到“库搜索路径”构建设置中(这不需要有条件;它不会对模拟器造成任何损害)。

发布于 2018-04-23 07:30:36
在我的例子中,它应该明确指定哪个SDK使用哪个标志。

因此,在Any iOS Simulator SDK中,不应该包含库。
在Any iOS SDK中,您应该包括它。在我的例子中,是-lCloudReco。
https://stackoverflow.com/questions/24403594
复制相似问题