联合编程的操作步骤
首先,我先说一下我所安装的环境,我的电脑是Win7(X64)的,我安装的Matlab是Matlab R2010b和VS2010,还有Matcom4.5
我Matlab的安装目录:C:\\Program Files\\MATLAB
我VS的安装目录:F:\\Program Files (x86)\\Microsoft Visual Studio 10.0
一、Matlab环境配置
在Matlab的Command Windows下输入命令:mbuild -setup
然后输入命令:mex–setup 方法同上mbuild–setup一样。
在Matlab中编写想要实现的.m文件。我以最简单的.m文件为例:
function [c]=Myadd(a,b) c=a+b;
在命令窗口编写:
会在当前目录下生成如下图中显示的文件:
其中重点会用到的是.cpp、.h、,dll、.lib文件。 在头文件的最后,你可以看到下面的内容: externLIB_myadd_CPP_API void MW_CALL_CONV myadd(intnargout, mwArray& c, constmwArray& a, constmwArray& b);
这就是myadd的C函数的声明。nargout表示输出变量的个数,其他就是对应了m函数的几个变量。 二、Matcom设置准备工作
在Matcom中编写函数文件:
保存后,点击compile to DLL,生成DLL文件默认在matcom安装目录debug文件夹下面。会生成如下图所示的文件:
主要用到的还是.dll、.h、.lib等文件。
不过在VS中调用时,需要将matcom安装目录lib文件夹下的matlib.h和v4501.lib拷贝到工程文件夹下。
并且要将翻译生产的文件(.dll、.h、.lib等文件)也复制粘贴到工程目录下。且在stdafx.h中要包含matlib.h。 三、VS2010中的设置
在VS中新建了一个工程,我随便起了个名字叫123。 (1)设置Include 和Library 目录
项目右键->属性->VC++目录->包含目录:添加
项目右键->属性->VC++目录->库目录:添加
(2)设置工程目录
项目右键->属性->C/C++->常规->附件包含目录:添加
项目右键->属性->链接器->常规:添加
项目右键->属性->链接器->输入->附件依赖性:添加
libeng.liblibmat.liblibmex.liblibmx.libmclmcrrt.libmclmcr.libaetherLib.lib
(同时将你之前在Matlab或Matcom中编译而成的所有.lib文件也添加进去)