找不到“ GLIBCXX_3.4.11”,请运行来自MATLAB的系统调用,该系统调用链接到的glibc与matlab bin路径中的glibc有所不同
||
我试图绕过使用MEX链接到MATLAB的过程,只是使用\“!\”调用二进制文件,如下所示:
>> !template_image_rigid -args ....
template_image_rigid: /opt/MatlabR2010a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.11\' not found (required by /usr/lib/libboost_program_options.so.1.40.0)
template_image_rigid: /opt/MatlabR2010a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.11\' not found (required by /usr/lib/libdirac_encoder.so.0)
有没有一种方法可以从MATLAB内部轻松修复此动态链接问题?我知道我可以使用MATLAB重新编译源代码并使用MEX调用,但是由于运行求解器需要一些时间,因此我只想将其作为shell命令运行,然后将文本数据导入到MATLAB中。
如果有帮助,可在以下位置找到源和CMakeLists.txt:https://github.com/pkarasev3/nlmagick/tree/master/samples
没有找到相关结果
已邀请:
4 个回复
辟官陡板休
这使
好的,所以LD_LIBRARY_PATH不好。 技巧:编写一个poltergeist脚本并从gnome-terminal运行它,从Matlab启动它,方法是:
其中hack.sh是一个类似以下内容的脚本:
因此,一个简单的测试是使用\“ eog \”进行尝试,此hack解决了链接问题,并允许您从matlab中运行它...
才改隘瘁
森含械
我的libstdc系统版本为 /usr/lib/i386-linux-gnu/libstdc++.so.6 然后用系统libstdc的链接替换matlab libstdc版本。 从命令行键入(用您的设置替换[....]):
豹芜澈
它基本上是重置库路径,然后评估由脚本参数给出的调用。然后从matlab内部以这种方式调用:
这种方法的优点是您可以在matlab中动态修改call命令。据我所知,使用当前提供的答案中的bang语法是不可能的。