我已经看到一些已经引用我的问题并解决它的帖子,但它在2年前是活跃的,我试图使用它,但它不适用于我(也许在Xcode或东西差) 这里是相关的帖子:在iOS应用程序中忽略库以编译模拟器
Making Xcode ignore static library when building for iOS Simulator
Xcode: Conditional Build Settings based on architecture (Device (ARM) vs Simulator (i386))
我有一个与vuforia,一个C++库一起工作的项目,但是这个库与模拟器不兼容。我想编译我的模拟器项目(即使使用lib的部分显然不会工作)来测试我的应用程序的其他功能。
在我的构建设置,我有这样的:
头搜索路径:../../build/include
库搜索路径:../../build/ LIB/ARM
我是一无所有其它链接器标记
继帖子,我试图删除的lib exclusi vely的模拟器,和我目前有:
的编译错误的变化,现在是“Vuforia/Vuforia.h找不到文件”中使用的lib我的视图控制器之一。
所以我照顾了它,我增加了预处理指令
#if !(TARGET_OS_SIMULATOR)
....
#endif
它的许多它的工作,但一个错误仍然存在,即使它是块内像表明上述
#if !(TARGET_OS_SIMULATOR)
#import <QuartzCore/QuartzCore.h>
#import <OpenGLES/ES2/gl.h>
#import <OpenGLES/ES2/glext.h>
#import <sys/time.h>
#import <Vuforia/Vuforia.h>
#import <Vuforia/State.h>
#import <Vuforia/Tool.h>
#import <Vuforia/Renderer.h>
#import <Vuforia/TrackableResult.h>
#import <Vuforia/VideoBackgroundConfig.h>
...
#endif
最后我也试图与其它链接器标记玩,但它并不能帮助......
你能帮我到f ind如何绑定仅用于iOS设备的库并在模拟器上运行应用程序?
谢谢!
感谢您的回复!我试过了,但我仍然有同样的错误,我认为这个链接是好的:当我定位到iPhone时编译,并且模拟器的错误是'Vuforia/Vuforia.h'文件未找到。这是因为模拟器的解除链接工作。当我像上面提到的那样使用TargetConditionals.h时,问题就出现了。我试着用if定义else define endif,这个值在iPhone上很好,所以它应该可以工作,而且错误只适用于一个文件,而我在多个文件中使用TargetConditionals ... – zarghol
如果你得到一个'文件没有找到'的错误编译模拟器时,你不正确的守护,包括一个TARGET_OS_SIMULATOR条件。 –
我找到了!这是因为在我使用#if!(TARGET_OS_SIMULATOR)的任何地方,我都没有包含TARGET_OS_SIMULATOR的.h。它正在工作!谢谢 ! – zarghol