MATLAB中mexC++代码,.a静态链接库的用法
2016-11-24 09:47
281 查看
前两天在GitHub上找到一个MATLAB项目,想在电脑上跑一跑,结果发现运行时总是发现报错:“Undefined function or variable 'faac_wrapper'.”,后来发现这个函数是用C++写的,然后就去查MATLAB里面怎么用C++代码,然后用编译C++代码的时候,又报错发现很奇怪的错误,显示有很多函数没有定义,然后去看头文件,发现这些函数在头文件中都有声明,编译的时候找不到函数定义。仔细看了文件夹的文件,发现有一个后缀名是.a的文件上网查到,这是Linux的静态链接库文件,显然要在Linux上面装MATLAB,费了半天劲装好(过程不说了,网上都有)。然后继续mex我的cpp文件:mex
faac_wrapper.cpp -I/mnt/hgfs/Linux_Share/matlab/faac_mex/libs -L/mnt/hgfs/Linux_Share/matlab/faac_mex -llibfaac,发现还是连接不上,在MATLAB的help上看了也没发现是哪里不对,但我感觉肯定是连接静态链接库的时候出问题了,这个时候我就瞎试,最后发现是静态库文件名的写法上有问题,我的静态链接库的名字是libfaac.a,其实静态链接库的命名规则是lib+libname.a,那个libname是你可以自己命名的,所以在连接的时候只需要写-lfaac就可以了,lib和.a都不用加,前面-l后面的路径是静态库的头文件所在的路径,后面-L后面的路径是你的静态链接库的路径,然后mex成功之后生成.mexa64文件,你就可以在m文件里面使用这个函数了。
faac_wrapper.cpp -I/mnt/hgfs/Linux_Share/matlab/faac_mex/libs -L/mnt/hgfs/Linux_Share/matlab/faac_mex -llibfaac,发现还是连接不上,在MATLAB的help上看了也没发现是哪里不对,但我感觉肯定是连接静态链接库的时候出问题了,这个时候我就瞎试,最后发现是静态库文件名的写法上有问题,我的静态链接库的名字是libfaac.a,其实静态链接库的命名规则是lib+libname.a,那个libname是你可以自己命名的,所以在连接的时候只需要写-lfaac就可以了,lib和.a都不用加,前面-l后面的路径是静态库的头文件所在的路径,后面-L后面的路径是你的静态链接库的路径,然后mex成功之后生成.mexa64文件,你就可以在m文件里面使用这个函数了。
相关文章推荐
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- 转帖](译)MATLAB代码矢量化指南-1
- 常用的弹出窗口用法代码.
- [读书笔记]Matlab代码优化
- 嵌入式小波零树(EZW)算法的过程详解和Matlab代码(2)编码过程(081227-补充quantifier程序)
- 最近修改代码(Matlab)的感受
- eregi_replace与preg_replace 函数代码的用法比较
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- CodeSmith NetTier模板生成的代码框架用法 (转)
- Control Study -> Asp.net几个较复杂的显示数据控件(Repeater/DataList/DataGrid)用法 (示例代码下载)
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- NetTier模板生成的代码框架用法 (转)
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- Html代码中table跨2行和跨2列的用法
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 生成集合[n]的所有k-子集MATLAB代码
- NetTier模板生成的代码框架用法
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- EZW算法的过程详解和Matlab代码(1)构建扫描次序表(修正小波树结构)
- 嵌入式小波零树(EZW)算法的过程详解和Matlab代码(3)解码过程