zoukankan      html  css  js  c++  java
  • c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

    转自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html

    首先必须知道联合编程需要知道的一些命令解释:

    mcc 的作用是将 .m文件编译为 c/c++动态链接库文件,使你可以在 c/c++程序中使用 matlab的一些函数功能。mcc 也可以将.m文件编译为exe可执行文件。

    mex 的作用是将 c/cpp文件编译为 .m  文件可以调用的库文件,在Windows操作系统里通常是以mexw32或mexw64为扩展名,让你可以使用 c/c++来扩展 matlab,即在matlab中调用C/C++编写函数的功能,达到增加新的功能或者加速原有程序的功能。

    mbuild 的作用是将 matlab视为一个 c/c++编译器,使用mbuild可以将 c/c++编译为 exe可执行文件,特色在于可以调用 matlab的数学库和图形库,但这样需要使用 matlab提供的动态连接库才能运行。

    注意:我之前输入mcc命令后,出现了Test checkout of feature 'Compiler' failed的问题,原因是matlab2014a没有破解,按照下面的链接解决:

    http://blog.csdn.net/smilebluesky/article/details/42987985

     --------------------------------------分割线-----------------------华丽转身-------------------------------

     在做matlab和C++混合编程时要对系统进行设置。比如我要用deploytool生成c++的动态链接库(下面有图),必须先要运行mbuild -setup命令。

    注意,我用的是matlab2014a,跟文中不同,具体的deploytool的编译过程如下:

    命令行输入deploytool:选择 application compiler

    然后,进入下面页面,在add main file里添加主要执行的.m文件,再在下面运行应用程序里添加辅助的.m文件,然后点击package,生成exe文件。

    编译结束后,会生成三个文件夹:点击for_testing文件夹下的exe可执行文件,即可运行。

    后面的工作就很简单了,新建个c++工程,把生成的ImageConvert.exe加到工程里,写上:

    #include <windows.h>

    int main()

    {

    system("ImageConvert.exe");

    }

    一次性运行通过。

  • 相关阅读:
    Spring JDBC
    获取JNDI数据源
    subset II
    hadoop-0.20.2安装配置
    leetcode5:subsets问题
    leetcode4:Permutation
    leetCode3
    leetcode2:线性表
    leetcode1:线性表
    使用C++11 开发一个半同步半异步线程池
  • 原文地址:https://www.cnblogs.com/aminxu/p/4649674.html
Copyright © 2011-2022 走看看