我是xcode IDE的新手,并且难以引用dylib。
我试图通过链接到libmwmclmrt.7.16.dylib来调用Matlab运行时初始化函数,我在Build Phases-> Link Binary with Libraries中添加了它 还添加了包含dylib的目录 * / Applications / MATLAB / MATLAB_Compiler_Runtime / v716 / bin / maci64 * to
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
原因:未找到图像
我了解到otool可以提供有关dylib的信息,我确认libmx.dylib正在引用其他各种dylib /应用/ MATLAB / MATLAB_Compiler_Runtime / V716 / bin中/ 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)
我在预期位置有所有必需的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,以便参考所需的dylibs开始正常工作。我不想将它们复制到/ usr / local / lib
答案 0 :(得分:0)
部分答案:在构建设置下,除了将库路径添加到构建设置>链接>运行路径搜索路径之外,您还必须添加相同路径到构建设置>搜索路径>库搜索路径。
我刚刚开始使用XCode并且与库(特别是MATLAB)的链接并不是直截了当的(尽管,一旦掌握了它,在我看来,它比编写Makefile容易得多)。我在MATLAB留言板上写了一篇快速教程:http://www.mathworks.com/matlabcentral/answers/31073-tutorial-for-libmat-under-xcode-4-2