2012-12-02 30 views
2

我是xcode IDE的新手,並且很難引用dylib。設置xcode4.5來引用其他dylibs

我試圖通過鏈接到libmwmclmrt.7.16.dylib調用Matlab的運行初始化函數,我補充說,在構建Phases->鏈接二進制與圖書館 還添加了含有dylibs目錄 * /應用/ MATLAB/MATLAB_Compiler_Runtime/V716 /斌/ maci64 *到

RUNPATH搜索路徑 框架搜索路徑中 庫搜索路徑

在這兩個項目和目標構建設置。

編譯會成功,但是當我運行
調用該函數mclInitializeApplication()我收到以下錯誤

「的錯誤,而試圖初始化MCR發生程序錯誤是:致命錯誤加載庫/usr/local/lib/libmx.dylib錯誤:dlopen(/usr/local/lib/libmx.dylib,9):庫未加載:libtbb.dylib 引用自:/ Applications/MATLAB/MATLAB_Compiler_Runtime/v716/bin/maci64/libut.dylib 原因是:image not found

我瞭解到,otool可以dylibs提供的信息和我覈實,libmx.dylib在 /應用/ MATLAB/MATLAB_Compiler_Runtime/V716/bin中引用其他各種dylibs/maci64/

> otool -L libmx.dylib 
libmx.dylib: 
    @rpath/libmx.dylib (compatibility version 0.0.0, current version 0.0.0) 
    @rpath/libmwresource_core.dylib (compatibility version 0.0.0, current version 0.0.0) 
    @rpath/libmwi18n.dylib (compatibility version 0.0.0, current version 0.0.0) 
    @rpath/libut.dylib (compatibility version 0.0.0, current version 0.0.0) 
    @rpath/libmwfl.dylib (compatibility version 0.0.0, current version 0.0.0) 
    @rpath/libmwMATLAB_res.dylib (compatibility version 0.0.0, current version 0.0.0) 
    @rpath/libboost_date_time.dylib (compatibility version 0.0.0, current version 0.0.0) 
    @rpath/libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0) 
    @rpath/libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0) 
    @rpath/libicudata.44.dylib (compatibility version 44.0.0, current version 44.2.0) 
    @rpath/libicuuc.44.dylib (compatibility version 44.0.0, current version 44.2.0) 
    @rpath/libicui18n.44.dylib (compatibility version 44.0.0, current version 44.2.0) 
    @rpath/libicuio.44.dylib (compatibility version 44.0.0, current version 44.2.0) 
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3) 
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) 

我所有的在預期的位置,爲什麼我仍然得到無法引用需要dylibs,圖像沒有發現錯誤

$ pwd 
/Applications/MATLAB/MATLAB_Compiler_Runtime/v716/bin/maci64 
$ ls -lrt libtbb.dylib 
-r-xr-xr-x 1 bakkiraju admin 487912 Jul 8 2011 libtbb.dylib 

$ ls -lrt libu 
libuij.dylib libut.dylib 

$ ls -lrt libut.dylib 
-r-xr-xr-x 1 bakkiraju admin 1217088 Jul 26 2011 libut.dylib 

這些文件複製到/ usr/local/lib目錄,使錯誤消失。如何配置 xcode,以便引用這些需要dylib的dylib才能正常工作。我不想將它們複製到/ usr/local/lib目錄

回答

0

部分答案:在構建設置,超出了添加庫路徑生成設置>鏈接>運行路徑搜索路徑,還必須添加相同的路徑編譯設置>搜索路徑>庫搜索路徑

我剛開始使用XCode並鏈接庫(特別是MATLAB的)並不是直截了當的(儘管一旦你掌握了它,它比編寫Makefiles容易得多,在我看來)。我在MATLAB留言板上寫了一個快速教程:http://www.mathworks.com/matlabcentral/answers/31073-tutorial-for-libmat-under-xcode-4-2