2

我是 xcode IDE 的新手,很难引用 dylib。

我试图通过链接到 libmwmclmrt.7.16.dylib 来调用 Matlab 运行时初始化函数,我在 Build Phases->Link Binary with Libraries 中添加了它还添加了包含 dylibs */Applications/MATLAB/MATLAB_Compiler_Runtime/v716/bin/ 的目录maci64* 到

运行路径搜索路径框架搜索路径库搜索路径

在项目和目标构建设置中。

编译成功,但是当我运行调用函数 mclInitializeApplication() 的程序时,出现以下错误

“尝试初始化 MCR 时发生错误。
错误是:加载库 /usr/local/lib/libmx.dylib 的致命错误错误:dlopen(/usr/local/lib/libmx.dylib, 9): Library not加载:libtbb.dylib 引用自:/Applications/MATLAB/MATLAB_Compiler_Runtime/v716/bin/maci64/libut.dylib 原因:找不到图像

我了解到 otool 可以提供有关 dylib 的信息,并且我验证 libmx.dylib 正在引用 /Applications/MATLAB/MATLAB_Compiler_Runtime/v716/bin/maci64/ 中的各种其他 dylib

> 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)

我在预期的位置有所有必需的 dylib,为什么我仍然无法参考,找不到图像错误

$ 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 的引用开始正常工作。我不想将它们复制到 /usr/local/lib

4

1 回答 1

0

部分答案:在构建设置下,除了将库路径添加到Build Settings>Linking>Runpath Search Path 之外,您还必须将相同的路径添加到Build Settings>Search Paths>Library Search Paths

我刚开始使用 XCode 并与库(尤其是 MATLAB 库)链接并不简单(尽管在我看来,一旦掌握了它,它比编写 Makefile 容易得多)。我在 MATLAB 留言板上写了一个快速教程:http: //www.mathworks.com/matlabcentral/answers/31073-tutorial-for-libmat-under-xcode-4-2

于 2016-04-21T20:41:49.873 回答