2015-02-06 51 views
1

在XCode項目中,我有一個庫(libpng)和一個框架(opencv)。該框架已經包含我的庫的舊版本。XCode中鏈接庫的順序

現在,當我在「Link Binary With Libraies」中轉到XCode時,如果我先放置opencv,然後再放入libpng,我的代碼將使用opencv中的內容,即舊版本。

我的問題:是否有可能在編譯時知道我的項目將使用哪個版本的libpng?我想確切地知道,即使有人濫用我的圖書館鏈接的順序,我仍然使用正確的。

我已經試過是檢查與編譯僞指令的libpng的版本是這樣的:

#if PNG_LIBPNG_VER_MINOR !=6 
    #error "Wrong libpng version. Required is 1.6.9." 
#endif 

但是,這不是因爲那裏PNG_LIBPNG_VER_MINOR聲明總是正確的標頭中的解決方案。只是在代碼中可能會調用錯誤的方法。

謝謝!

回答

1

是否有可能在編譯時知道我的項目將使用哪個版本的libpng?

不在這種情況下。翻譯的參數與鏈接器的參數不同。沒有保證。