2012-07-27 104 views
0

通過MacPorts安裝FreeImage。一切看起來是好的,但是當我建造我的應用程序,並試圖啓動其他計算機上的其中沒有MacPorts的,沒有安裝的FreeImage它說FreeImage library not found

dyld: Library not loaded: /opt/local/lib/libfreeimage.3.dylib 
    Referenced from: /Users/development/Library/Developer/Xcode/DerivedData/freeimage-dxsornyaxqlkyubqwsrlkgszvxhy/Build/Products/Debug/freeimage.app/Contents/MacOS/freeimage 
    Reason: image not found 

難道不應該連同我的項目複製庫文件?我將它們添加到項目的構建階段「複製文件」列表中。它們正被複制到我的應用程序包中。但是當我嘗試鏈接它們時,我得到同樣的錯誤。我不知道爲什麼,但應用程序仍然在/ opt/local/lib中查找庫。我如何解決這個問題,以便我可以在我的項目中使用FreeImage並在任何計算機上運行FreeImage?

+0

操作系統正在'/ opt/local/lib'中尋找動態庫,但是你的包中有它們,因此找不到它們。 – 2012-07-27 08:28:51

回答

0

當您通過MacPorts安裝時,該庫安裝在/ opt/local/lib中,而不是在您的項目路徑中。即使複製整個項目,也不會複製* dylib庫,因爲它們通常位於/ opt/local/lib中。

我相信你在這裏有兩個選擇:在你想運行應用程序的每臺計算機上安裝FreeImage,或者將libfreeimage.3.dylib複製到你的二進制文件所在的文件夾,如果兩個系統相似,應該管用。如果兩臺計算機在操作系統版本,硬件架構等方面不同,那麼您的.dylib可能與另一臺計算機不兼容。

您可能要考慮的另一件事是修改您的DYLD_LIBRARY_PATH變量,該變量指定操作系統在鏈接時將查找庫的路徑。有關更多信息,請參閱this answer