Windows10 64位 matlab&VC混合编程
来源:互联网 发布:uu黑历史知乎 编辑:程序博客网 时间:2024/05/13 17:10
看了好多文章,在网上找了好多资料,终于在自己电脑上实现了用VS2013调用Matlab编译的动态库;
我的机器环境是(64位) Windows10 Matlab2015a Visual Studio 2013;由于没有找到破解版的Matlab来支持VS2015的编译器和打包工具,就用的VS2013。
需要注意的问题是64位的机器需要配置64位的工程配置,Matlab配置的mex编译器和mbuild打包工具需要选择一致,我选择的是VS2013,用师姐给的Matlab2014a的库调用就缺少某些.dll文件,这个应该是版本问题
总共分为以下几步:
1.设置系统环境变量
C:\R2015a\bin\win64;
C:\R2015a\bin;
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin;(VS安装路径)
2.VC++目录下的包含目录添加
C:\R2015a\extern\include
C:\R2015a\extern\include\win64
D:\Documents\VS2013\test\test
估计是BUG,在VS中添加目录如果路径中某个文件夹名字包含空格可能会导致VS无法识别路径,所以我把我的Matlab包和工程文件夹都拷贝到没有空格的文件夹里面了。。。也以防万一3.VC++目录下的库目录添加
C:\R2015a\bin\win64
C:\R2015a\extern\lib
D:\Documents\VS2013\test\test
C:\R2015a\extern\lib\win64\microsoft
C:\R2015a\extern\lib\win32\microsoft
4.C/C++中的常规里面的附加包含目录添加
C:\R2015a\extern\include
5.连接器下面的常规中的附加库目录添加
C:\R2015a\extern\lib\win64\microsoft
6.连接器下面的输入中的附加依赖项添加
libeng.lib
libmat.lib
libmex.lib
libmx.lib
mclmcrrt.lib
mclmcr.lib
libMyAdd.lib
7.在将Matlab编译好的.dll .lib .h文件拷贝到工程目录里面和主函数所在文件夹放在一起,并添加至工程8.在配置管理器中将工程配置为x64(这一步容易被忽略)
下面来看看主函数怎么调用加法函数,源代码样例:
// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "engine.h"#include "mclmcr.h"#include "mclcppclass.h"#include "libMyAdd.h"#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){if (!libSumInitialize()){//initilize failed!!!"<<std::endl;std::cout << "错误..." << std::endl;return -1;}double a = 6;double b = 9;double c;mwArray mwA(1, 1, mxDOUBLE_CLASS);mwArray mwB(1, 1, mxDOUBLE_CLASS);mwArray mwC(1, 1, mxDOUBLE_CLASS);mwA.SetData(&a, 1);mwB.SetData(&b, 1);MyAdd(1, mwC, mwA, mwB);c = mwC.Get(1, 1);cout << c << endl;system("PAUSE");return 0;}
- Windows10 64位 matlab&VC混合编程
- VC&MATLAB混合编程
- VC++;Matlab;混合编程
- VC+Matlab混合编程经验总结
- Matlab与VC混合编程
- VC+Matlab混合编程经验总结
- Matlab与VC混合编程
- vc与matlab混合编程
- Matlab与VC混合编程
- Matlab与VC混合编程
- VC+Matlab混合编程经验总结
- Matlab VC C++ 混合编程
- MATLAB与VC混合编程
- VC++和Matlab混合编程
- VC++与MATLAB混合编程
- VC与Matlab混合编程
- VC与Matlab混合编程
- Matlab&VC++混合编程初探
- 【BZOJ2002】弹飞绵羊
- Storm应用系列之——Topology部署
- java 打印函数调用栈
- 教你改变Linux字体和背景颜色
- 八个Docker的真实应用场景
- Windows10 64位 matlab&VC混合编程
- hibernate中部分函数学习
- 没有走过的路
- 【FOJ2210 11月月赛F】【DFS or 拓扑排序】攻占计划 n个点m条边DAG破坏一个点使得不可达点数尽可能多
- 应用抽象工厂模式自己动手写一个ioc
- 20151118 parameter
- UVa 1599 Ideal Path
- 解决在onCreate()过程中获取View的width和Height为0的4种方法
- NodeJs 安全