问题描述
2 年前,我开始在 MATLAB 中编写数据处理代码,多亏了 armadillo,我才能够将其转换为 C++/mex 文件。它终于全部转换为 C++/mex,但不再需要仅是 C++ 的 mex。所以我开始编写 C++ main 函数并包含我在 mex 版本中使用的函数的头文件,当我尝试编译时我得到
/usr/bin/ld: /tmp/ccYOMZVI.o: undefined reference to symbol 'mxGetN_800'
/usr/bin/ld: /usr/local/MATLAB/R2019b/bin/glnxa64//libmx.so: error adding symbols: DSO missing from command line
使用 Matlab/Mex 编译时,我使用的命令是:
mex -v COMPFLAGS='$COMPFLAGS /std:c++11' COPTIMFLAGS="-O3 -fwrapv -DNDEBUG" CFLAGS="$CFLAGS -fopenmp -march=native" -I/usr/include rcp_adp.cpp -I/usr/include ini.c -I/usr/include cpp/INIReader.cpp -L/lib64 -lgomp -larmadillo -lmwlapack -lmwblas -lfftw3_omp -lfftw3 -lm
和我的 C++ 测试函数编译:
g++ test.cpp -O3 -fopenmp -fwrapv -DNDEBUG -L/usr/local/MATLAB/R2019b/bin/glnxa64/ -lgomp -larmadillo -lmwlapack -lmwblas -lfftw3_omp -lfftw3 -lm
自从我从终端编译 C/C++ 而不是从 MATLAB for mex 编译 C/C++ 可能已经有大约 5 年了,所以我可能会遗漏一些非常简单的东西。任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)