2015-02-23 86 views
1

我想鏈接GLEW庫到Xcode項目,但我一直在遇到問題。每當我建立我的編譯鏈接libGLEW.a,我會立即在啓動時崩潰,錯誤輸出讀數:XCode鏈接靜態庫(GLEW)嘗試dylib加載

yld:庫未加載:/usr/lib/libGLEW.1.12.0.dylib 從引用:/Users/xxx/Library/Developer/Xcode/DerivedData/xcode-test/Products/Debug/manualWindow.app/Contents/MacOS/manualWindow 原因:沒有找到圖片

我還沒有編寫任何代碼要求我的應用程序加載這個動態庫。這種行爲似乎也許我的GLEW庫實際上是一個導入庫,並且正在嘗試加載dylib。我自己構建了GLEW,並且在生成靜態庫的對象時,可以看到在命令行中指定了「-DGLEW_STATIC」。

有沒有人知道我可以告訴我的GLEW庫(libGLEW.a)是否實際上是dylib的導入庫?作爲後續工作,如何正確建立圖書館以避免這種情況?

回答

4

它看起來像其他事情實際上發生在這裏。

當我構建靜態GLEW庫時,它也在其旁邊構建了動態版本。根據我在線進行的一些其他搜索,似乎Xcode會自動嘗試加載庫的動態版本,如果庫搜索路徑中存在相同名稱的版本。

一旦我刪除我的生成文件夾(libGLEW.dylib)中的動態版本,然後加載錯誤時,我可以鏈接和調用靜態庫函數沒有問題。

+0

This!我剛剛經歷過同樣的事情。任何想法爲什麼會發生?有沒有配置選項可以做,而不是刪除dylib文件? – thomthom 2016-12-20 09:19:45

+0

啊,發現這個:https://developer.apple.com/library/content/qa/qa1393/_index.html 「注意:如果兩個庫都位於相應的dylib中,則無法選擇靜態庫而不使用-l鏈接器選項和每個庫的絕對路徑。「 似乎需要一個絕對路徑。 – thomthom 2016-12-20 09:33:33