谁有过成功将matlab的.m文件编译成cpp文件?
bit01 2004-05-13 04:47:36 我参看了不少网上帖不过还是没有成功,我用的matlab6.5+windowxp,我得具体操作如
下:
1.我使用了图形相关的函数
建立一个m文件test2.m,内容如下:
function test2
plot(rand(10));
用如下命令编译:
mcc -p -B sglcpp test2.m
编译完成后得到与m文件名相对应的hpp和cpp文件、一个主函数文件、bin目录中的
两个Fig文件以及一个exe文件。我把需要的只是与m文件相对应test2.hpp,
test2.cpp以及
bin目录中
的FigureMenuBar.fig和FigureToolBar.fig保留。
2。VC中的操作
2。1 用VC建立win32 application工程,把第一步中提到的文件test2.hpp,
test2.cpp,
FigureMenuBar.fig和FigureToolBar.fig拷贝到工程所在目录中。
2。2 选择菜单Tools-Options-在属性页中选择Directories-下拉框中选择
Include Files,在其最后加入
E:\MATLAB6P5\EXTERN\INCLUDE\CPP
E:\MATLAB6P5\EXTERN\INCLUDE
其中E:\MATLAB6P5为MATLAB的安装路径
再在下拉框中选择Library Files,在最后加入
E:\MATLAB6P5\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
E:\MATLAB6P5\EXTERN\LIB\WIN32
2。3 选择菜单Project-Settings-属性页Link-下拉列表中选择Input,在
Object/library modules文本框中加入 libmmfile.lib libmatlb.lib libmx.
lib libmat.lib libmatpm.lib sgl.lib libmwsglm.lib libmwservices.lib
在Ignore Libraries文本框里,填写msvcrt.lib,libcd.lib
2。4 选择C/C++属性页,在下拉列表中选择Preprocessor,在Preprocessor
definitions中加入MSVC,IBMPC,MSWIND
再在下拉框中选择Precomplied Headers,选中Automatic use of precompiled
headers,在其中填入stdafx.h
2。5 菜单Project-Add To Project-Files把所有拷贝过来的cpp文件加入到当前
工
程中。
2。6 Win32 Application
由于我选择建立"A simple Win32 Application",这样的工程中默认是没有主窗口
的,只
有一个WinMain函数,以带图形的函数为例,把test2.hpp test2.cpp以及
FigureMenuBar.fig和FigureToolBar.fig拷贝到当前工程中。
在#include "stdafx.h"下面添加
#include "test2.hpp"
在WinMain函数中添加如下代码:
libmmfileInitialize();
libmwsglmInitialize();
mlfHGInitialize(NULL,NULL);
test2();
mlfHGWaitForFiguresToDie();
mlfHGTerminate();
libmmfileTerminate();
libmwsglmTerminate();
此时应该编译能够成功,但却会出现13个宏及函数未定义的错误信息?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
急盼有牛人帮我解答,谢谢
--
∧
〞┆〝
#########〝〝ⅲ 〞〞#########
############### `●` ###############
################# ┗^◆^┛ ##################
###### `╱╲` ###### ●超级野猴子!●
--
mlfHGWaitForFiguresToDie();
mlfHGTerminate();
libmmfileTerminate();
libmwsglmTerminate();
此时应该编译能够成功,但却会出现13个宏及函数未定义的错误信息?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
错误信息如下:
:\matlab6p5p1\extern\include\cpp\dblmtrx.h(768) : error C2065: 'MX_DYNAMIC_STRUCT_REF_ERROR' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(3829) : error C2065: 'mlxJitBreakpoint' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(4847) : error C2065: 'mlxNamelengthmax' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(5035) : error C2065: 'mlxFalse' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(5051) : error C2065: 'mlxTrue' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(5780) : error C2065: 'mlxRegexp' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(5882) : error C2065: 'mlxRegexpi' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(5984) : error C2065: 'mlxRegexprep' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(6123) : error C2065: 'mlxRethrow' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(6850) : error C2065: 'mlxStrfind' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mlmif.h(7294) : error C2065: 'mlx_times_transpose' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\matmtxif.h(691) : error C2065: 'mclScalarToBool' : undeclared identifier
f:\matlab6p5p1\extern\include\cpp\mcccpp.h(119) : error C2065: 'mclValidateOutputError' : undeclared identifier
Error executing cl.exe.
test.exe - 13 error(s), 0 warning(s)
为啥呢?急盼有牛人帮我解答,谢谢
--
∧
〞┆〝
#########〝〝ⅲ 〞〞#########
############### `●` ###############
################# ┗^◆^┛ ##################
###### `╱╲` ###### ●超级野猴子!●