微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 ubuntu 中使用 mex 在 matlab 中编译一个 C++ 文件

如何解决在 ubuntu 中使用 mex 在 matlab 中编译一个 C++ 文件

我正在尝试在使用 g++ 版本 8 的 ubuntu 操作系统(虚拟机)上运行包含 c++ 代码和 fftw3 库的 matlab (2020a) 代码。 我使用的 mex 命令:

eval(strcat("mex ./file_mex.cpp ",filelist," -DNO_SDL -DNO_openexr -DNO_TIFF -DNO_JPEG -DNO_PNG -L/usr/lib/x86_64-linux-gnu -I/home/mh/fftw-3.3.9/api/ -lfftw3f -lfftw3f -ldl -R2018a"))

当我插入时:$locate fftw3.h 我得到:

/home/mh/fftw-3.3.9/api/fftw3.h

/usr/local/include/fftw3.h

在这里遗漏了什么导致这个错误并且无法编译:

错误使用 mex /usr/bin/ld: //usr/local/lib/libfftw3f.a(assert.o): 针对符号 `stdout@@GLIBC_2.2.5' 的重定位 R_X86_64_PC32 不能 在创建共享对象时使用;用 -fPIC /usr/bin/ld 重新编译: 最终链接失败:错误值 collect2:错误:ld 返回 1 个退出

警告:您正在使用 gcc 版本“8.4.0”。 gcc的版本不是 支持的。 MEX 目前支持的版本是“6.3.x”。

任何帮助将不胜感激, 提前致谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。