matlab 调用C编译器 调试c程序
2014-04-05 00:04
274 查看
因为做实验需要用到matlab和c进行混合编程,从别人的博客里看了一些关于matlab调用C程序的方法,但是在实际做工程中还需要用到调试功能,而本人之前并没有调试过,于是一顿乱找,无果。于是找了很久文档,发现其实要用matlab调用c编译器调试c程序并不困难,几步就可以完成。
我用的开发环境是vs2010和matlab2011b
下面说下调试的步骤:
1)需要先在MATLAB中 安装mex编译器;
这个用于将c程序编译成matlab可解释的mex文件。
安装命令: mex -setup
执行后会出现下面的文字
Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2011b/win32.html
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n?
输入y,回车。
出现
Select a compiler:
[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2011b\sys\lcc
[2] Microsoft Visual C++ 2010 in D:\Program Files\Microsoft Visual Studio 10.0
[0] None
Compiler:
因为要使用vs2010的环境进行调试,果断选择第二个编译器,然后确认安装即可。
2) c程序的编译:
使用命令 mex *.c -g
其中 *.c 表示你要编译的文件,-g表示mex的编译参数,(使用debug模式进行编译);不需要调试的话,就不需要添加-g这个参数。
编译完成后会生成 *.mexw32(或者*.mexw64)这类文件。
3)这时候不要关闭matlab,并打开VS2010。使用vs2010中的附加到进程功能,附加的进程为matlab.exe进程。
具体操作位: 工具->附加到进程(P);在当前面板框中选择matlab.exe 进程,并点击附加按钮。
4)打开需要调试的c程序文件,注意要保持编译好的mex文件与c文件以及当前matlab执行路径在同一个路径下,否则还是不能进行调试。
打开文件并设置断点即可。
文件->打开->文件->*.c 在文件中设置断点。
5) 最后在matlab的编辑环境允许到断点所在的位置,按F11进入即可。
我用的开发环境是vs2010和matlab2011b
下面说下调试的步骤:
1)需要先在MATLAB中 安装mex编译器;
这个用于将c程序编译成matlab可解释的mex文件。
安装命令: mex -setup
执行后会出现下面的文字
Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2011b/win32.html
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n?
输入y,回车。
出现
Select a compiler:
[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2011b\sys\lcc
[2] Microsoft Visual C++ 2010 in D:\Program Files\Microsoft Visual Studio 10.0
[0] None
Compiler:
因为要使用vs2010的环境进行调试,果断选择第二个编译器,然后确认安装即可。
2) c程序的编译:
使用命令 mex *.c -g
其中 *.c 表示你要编译的文件,-g表示mex的编译参数,(使用debug模式进行编译);不需要调试的话,就不需要添加-g这个参数。
编译完成后会生成 *.mexw32(或者*.mexw64)这类文件。
3)这时候不要关闭matlab,并打开VS2010。使用vs2010中的附加到进程功能,附加的进程为matlab.exe进程。
具体操作位: 工具->附加到进程(P);在当前面板框中选择matlab.exe 进程,并点击附加按钮。
4)打开需要调试的c程序文件,注意要保持编译好的mex文件与c文件以及当前matlab执行路径在同一个路径下,否则还是不能进行调试。
打开文件并设置断点即可。
文件->打开->文件->*.c 在文件中设置断点。
5) 最后在matlab的编辑环境允许到断点所在的位置,按F11进入即可。
相关文章推荐
- MEX文件调试—MATLAB调用C++程序—混合编程
- MATLAB调用C程序、调试和LDPC译码
- MEX文件调试—MATLAB调用C++程序—混合编程
- eclipse调试java调用matlab程序的7.17dll找不到的问题
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?----转
- MATLAB与C/C++混合编程之MATLAB调用C程序
- Emacs调用Matlab编译器-快速配置
- VC6调用matlab7里的m程序的案例及方法
- TLD算法matlab版本的程序调试
- 关于Java调用Matlab程序
- C#中调用Matlab程序
- matlab调用C程序
- 界面开发:在MATLAB下调试C/C++程序
- C程序调用matlab (Win8 64 bit + VS 2013 + Matlab R2014a)
- C/C++调用Matlab程序
- ls -l |grep "^-"|wc -l 程序问题的定位—strace -p pid(跟踪系统调用)gdb -p pid(调试)lsof -p pid(查看当前进程打开的文件描述符) ps -e
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- 在VC6.0下面如何调用matlab的程序
- matlab调用C程序
- 【MATLAB与C的混合编程】之【C程序调用Matlab计算引擎】(2)