2016-11-25 36 views
0

我已经看到一些已经引用我的问题并解决它的帖子,但它在2年前是活跃的,我试图使用它,但它不适用于我(也许在Xcode或东西差) 这里是相关的帖子:在iOS应用程序中忽略库以编译模拟器

我有一个与vuforia,一个C++库一起工作的项目,但是这个库与模拟器不兼容。我想编译我的模拟器项目(即使使用lib的部分显然不会工作)来测试我的应用程序的其他功能。

在我的构建设置,我有这样的:

头搜索路径:../../build/include

库搜索路径:../../build/ LIB/ARM

我是一无所有其它链接器标记

继帖子,我试图删除的lib exclusi vely的模拟器,和我目前有: Library Search Path

的编译错误的变化,现在是“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设备的库并在模拟器上运行应用程序?

谢谢!

回答

0

我会避免设置不同的标题搜索路径。

正如你所提到的那样使用TargetConditionals.h来为模拟器构建时禁用Vuforia。然后,为了照顾链接,我建议使用OTHER_LDFLAGS而不是“链接库”构建阶段,因为您无法按平台条件化构建阶段。你可以很容易地用xcconfig这样做:

OTHER_LDFLAGS = -framework Vuforia 
OTHER_LDFLAGS[sdk=*simulator] = 
+0

感谢您的回复!我试过了,但我仍然有同样的错误,我认为这个链接是好的:当我定位到iPhone时编译,并且模拟器的错误是'Vuforia/Vuforia.h'文件未找到。这是因为模拟器的解除链接工作。当我像上面提到的那样使用TargetConditionals.h时,问题就出现了。我试着用if定义else define endif,这个值在iPhone上很好,所以它应该可以工作,而且错误只适用于一个文件,而我在多个文件中使用TargetConditionals ... – zarghol

+0

如果你得到一个'文件没有找到'的错误编译模拟器时,你不正确的守护,包括一个TARGET_OS_SIMULATOR条件。 –

+0

我找到了!这是因为在我使用#if!(TARGET_OS_SIMULATOR)的任何地方,我都没有包含TARGET_OS_SIMULATOR的.h。它正在工作!谢谢 ! – zarghol

相关问题