matlab mex编译问题

matlab和c,cpp的混编在很多科学应用以及论文代码中都会用到,有些时候我们需要自己生成。笔者在跑别人的matlab代码程序的时候需要重新进行matlab和c++的混编,其中还调用了eigen的库文件,按照正常情况下,编写完成cpp文件后,在matlab对应目录下,选择完相应的编译器后,只要输入mex filename.cpp即可,但是笔者每次都会出现以下错误:

matlab mex编译问题_第1张图片

而对应的eigen3文件夹已经放在.cpp同名文件夹下,同时,在vs2013的搜索目录中也已经添加了响应的路径,仍然会出同样的问题。

经过仔细查找,笔者发现,mex编译的时候除了直接mex相应的文件,还要根据.cpp文件中使用的库来进行适当的调整,如果用到了其他的函数库,那么需要使用的编译命令是mex -l./ filename.cpp,相应的库文件位于.cpp同名文件夹下或者指定的已经添加到path的路径里。


详细的关于mex的编译说明见http://cn.mathworks.com/help/matlab/ref/mex.html


你可能感兴趣的:(编程,mex,混编,外部库文件)