gunmex在matlab中的配置(WinGW和cygwin)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

gunmex在matlab中的配置(WinGW和cygwin)

在Window xp/7下使用Linux的C/C++代码,编译成DLL供Matlab混合编程使用,目前有两个window 下的编译器cygwin和WinGW,这两个编译器都可以在Window下模拟Linux环境,并对C(gcc)和C++(g++)进行编译,cygwin以及WinGW,如果是混合Matlab编程,个人推荐使用WinGW,安装简单,使用方便。以下是总结一些网上的文章,对我们初学者有些帮助,在此一并感谢原作者。

在windows下用的g++编译器,以前用过这方面的MinGW,今天上网下载这个程序,发现这边的网速不行,因为它支持的是在线安装。在/上可以看到其安装程序。

里面的开发包都好老,在经历了很多次失败后,我决定手工安装。

一.手工安装方法:来自

/articles/windows%E4%B8%8Bmingw%E7%9A%84%E5%AE%89%E8%A3%85 %E4%B8%8E%E4%BD%BF%E7%94%A8.html

MinGW提供了一个编写Windows应用程序的完整开源工具包。

1)MinGW的安装

MinGW的安装,其实非常简单。

因为手动安装有着更多的灵活性,所以这里重点说一下手动安装的步骤。安装MinGW至少需要四个包:* binutils

* gcc-core

* mingw-runtime

* w32api

把这些包下载下来,放到C:/MinGW目录下(当然,放到哪里都一样),然后在windows的cmd里,用下面的命令解压出来:

C:/MinGW>gzip -d -c binutils-2.17.50-20060824-1.tar.gz | tar x

C:/MinGW>gzip -d -c gcc-core-3.4.5-20060117-3.tar.gz | tar x

C:/MinGW>gzip -d -c mingwrt-3.15.1-mingw32-dev.tar.gz | tar x

C:/MinGW>gzip -d -c w32api-3.12-mingw32-dev.tar.gz | tar x

C:/MinGW> set path=C:/MinGW/bin;%path%

其实各个包的目录结构都是一样的,所以,解压后的目录结构仍然为一样的。其它的包也可以采用这样的方法来处理。只是要知道,我们解压是需要把这几个包混合起来,而不要只是习惯性的分别解压到一个文件夹里!

这个时候,最好推荐用命令行的方式来解压,不容易出错;如果系统没有装gzip或是类似的软件,可以用Cygwin来解压。

最后一行命令是添加path到环境变量里,如果你经常使用,需要把这个变量永久的添加到path变量里。当然,你可以根据你的需要选择更多的包,例如说gcc-g++ for C++、gcc-objc for Objective C、gcc-g77 for Fortran 77、gcc-java for Java或gcc-ada for Ada。如果需要这些包的话,只需要在上面的命令里多解压一个包即可。

2)MinGW的使用

现在我们可以直接在windows cmd里来使用gcc之类的命令来编译程序了。

比如说下面这个C程序:

#includeintmain(intargc, char **argv)

{

printf (“Start to use MinGW”);

return (0);

}

假如你想从hello.c生成一个在终端模式下的可执行文件hello.exe。只要直接用gcc编译器进行编译就行了:

gcc-chello.c

这个命令把hello.c编译成一个目标文件hello.o,然后用下面的方法生成一个可执行文件hello.exe:

gcc-o hello hello.o

事实上,作为一种选择,你可以使用下面的命令把编译和链接放到一步中完成:

gcc-o hello hello.c

下面是一个简单的c++程序的代码示例,复制并粘贴到一个叫hello.cpp的文件中试试看:

#include

intmain(intargc, char **argv)

{

std::cout<< “Start to use MinGW to compile C++” <

return (0);

}

对于c++程序来说,可以使用g++来编译和链接:

g++-c hello.cpp

g++ -o hello hello.o

对于gcc、g++及其他编译器的使用,可以查询各自的手册以获得更多的帮助。

二.配置在matlab下调用gcc编译器

软件下载地址: https:///projects/gnumex

软件安装和使用说明: /

软件功能:

在MATLAB上调用MinGW或Cygwin编译C和Fortran的mex代码。

这就意味着,我们可以在MATLAB上编译Linux的C程序代码和调用Linux的库编译出MATLAB能用的Mex程序。Whata nice tool!

安装步骤:

1. Sourceforge上下载软件,目前最新版

2.01。解压缩到任意一个固定的目录。如C:/MATLAB/gnumex

2. 运行MATLAB,把上面的目录加入到MATLAB的path中。

3. MATLAB上输入命令gnumex运行安装设置。设置很简单,主要是一下几个方面

- MinGW的root目录(如果使用的是MinGW的gcc,这里必须设置正确)

- Cygwin的root目录(同上,使用时设置,否则留空)

- f95 和gfortran的目录(有的话就设置,没有的话留空。这个是编译fortran程序选用的编译器)

注意: gfortran是gcc的一个组件,这个一般都有,就在MinGW的root目录/bin下面。最好选上,有备无患。

- linking环境这里选用mingw或cygwin根据自己的需要设置。注意-mno-cygwin这一项是指在cygwin 中link的时候使用windows的lib. 据说这个Cygwin gcc的option争议很大,功能不健全,在官方的maillist 上要求取缔此项功能的言论很多,虽然目前仍然在更新和支持中。所以,建议还是使用MinGW比较好。

相关文档
最新文档