2016-11-25 34 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

相關問題