Linux安装ASTRA:fatal error: mex.h: no such file or directory

先下载源代码:http://www.astra-toolbox.com/docs/install.html#linux-from-source

进入源代码目录:make 出现 fatal error: mex.h: no such file or directory 错误提示:

查找原因,发现是matlab版本与官网教程版本不同。于是修改配置即可:

我都matlab是2014a,把R2012a改成R2014a就可以了。

装完后,设置matlab path
Add $HOME/astra/matlab and its subdirectories (tools, mex) to your matlab path

紧接着测试,出现新问题:invalid MEX-file

查阅官方文档,发现有如下说明:

NB: Each matlab version only supports a specific range of g++ versions. Despite this, if you have a newer g++ and if you get errors related to missing GLIBCXX_3.4.xx symbols, it is often possible to work around this requirement by deleting the version of libstdc++ supplied by matlab in MATLAB_PATH/bin/glnx86 or MATLAB_PATH/bin/glnxa64 (at your own risk), or setting LD_PRELOAD=/usr/lib64/libstdc++.so.6 (or similar) when starting matlab.

这段话应该是针对matlab 2012a的 在2014a中MATLAB_PATH/bin/glnxa64不存在这个文件。但是可以确定是由于gcc版本问题,而导致的动态链接库出错。所以只要找到matlab里的libstdc++ 这个文件删除了就可以了。
用find MATLAB_PATH –name “libstdc++.so*”查找

删除MATLAB_PATH/sys/os/glnxa64 里的这两个libstdc++ 文件即可。

发表评论

电子邮件地址不会被公开。 必填项已用*标注