首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使Xcode在构建iOS模拟器时忽略静态库

使Xcode在构建iOS模拟器时忽略静态库
EN

Stack Overflow用户
提问于 2014-06-25 08:21:14
回答 3查看 5.5K关注 0票数 8

我有一个Xcode项目,其中包括一个静态库项目,它使用另一个不支持iOS模拟器体系结构的静态库(Vuforia : libQCAR.a)。

Vuforia SDK文档声明:

Vuforia应用程序必须部署到要运行的设备上;它们不能在iOS模拟器中运行。

这是我的项目结构:

  • MyApp.xcodeproj
    • MyStaticLibrary.xcodeproj
      • 依赖于libQCAR.a的类

代码语言:javascript
复制
- Frameworks 
    - libMyStaticLibrary.a
    - libQCAR.a

我的问题是,MyApp.xcodeproj不是为iOS模拟器构建的,因为libQCAR.a不是为i386体系结构构建的。

在为MyApp.xcodeproj构建libQCAR.a库时,是否需要让i386忽略它呢?我将能够禁用所有依赖于#if !(TARGET_IPHONE_SIMULATOR)库的代码。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-25 08:58:30

这个问题似乎非常类似于:Xcode:基于体系结构的条件构建设置(设备(ARM)与模拟器(i386))

我相信sergio的解决方案非常接近,但是您是否尝试过在其他Linker下指定到库的完整路径(可能没有"-l“--只是路径)?

票数 3
EN

Stack Overflow用户

发布于 2014-06-25 08:27:40

您可以使用条件生成设置指定仅在给定平台上链接的库,而不是以通常的方式将库添加到项目中。具体来说,您需要指定:

代码语言:javascript
复制
 -lQCAR

在“其他链接者旗帜”中。

看一看附加的图像,这将使事情更清楚(在图片中,我只链接模拟器,你会想要选择一个设备,我猜)。

另外,不要忘记将包含库的目录的路径添加到“库搜索路径”构建设置中(这不需要有条件;它不会对模拟器造成任何损害)。

票数 5
EN

Stack Overflow用户

发布于 2018-04-23 07:30:36

在我的例子中,它应该明确指定哪个SDK使用哪个标志。

因此,在Any iOS Simulator SDK中,不应该包含库。

Any iOS SDK中,您应该包括它。在我的例子中,是-lCloudReco

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24403594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档