windows10环境下安装编译Curvelab2.1.3以及从vs2012中用Fortran调用matlab引擎实现画图计算等功能

windows10环境下安装编译Curvelab2.1.3以及从vs2012中用Fortran调用matlab引擎实现画图计算等功能

前言

记录一下windows10环境下安装编译Curvelab2.1.3以及从vs2012中用Fortran调用matlab引擎实现画图计算等功能。
编译环境:win10+vs2012+matlab2016b
所需安装其他软件:msys2、tdm-gcc、Curvelab2.1.3、FFTW-2.1.5

一、下载链接

Curvelab2.1.3
FFTW-2.1.5
tdm-gcc(matlab2016b官方搭配版本为tdm-gcc4.9.2,能找到资源可以下载,下载最新版应该也行)
msys2

二、配置环境并编译Curvelab2.1.3

1.安装tdm-gcc并配置matlab中mex编译器

(1)下载安装tdm-gcc,最好直接安装在C盘,不要有子目录,路径中避免空格,例如我的C:\tdm-gcc4.9.2。
(2)在Matlab命令行中设置变量环境:其中’C:\tdm-gcc4.9.2’为安装TDM-GCC-64的路径,请设置为你自己的安装路径。

setenv('MW_MINGW64_LOC','C:\tdm-gcc4.9.2')

然后命令行输入mex -setup选择C++

 mex -setup

设置成功
(3)为了避免每次都设置环境,右键点击 我的电脑–属性–环境变量–系统变量 中添加变量名:MW_MINGW64_LOC,路径:C:\tdm-gcc4.9.2。

在这里插入图片描述

2.安装msys2

进入官网下载安装文件,按官网给出的流程安装,主要有

pacman -Syu
pacman -Su
pacman -S make

(注:不需要在msys2里安装gcc)
MSYS2和tdm-gcc安装完成后需要配置一下环境变量(方法同上),将tdm-gcc以及msys2的bin目录添加到系统路径path里,如下图所示:

在这里插入图片描述

3.使用bash环境

在电脑设置里找到开发者选项,打开
在这里插入图片描述

4.编译FFtw-2.1.5

(1)打开cmd,进入fftw-2.1.5路径(直接在路径处输入cmd,然后回车进入),输入bash进入bash环境
bash
(2)设置编译配置,输入

./configure --prefix=/your/install/path --with-pic

其中/your/install/path 是你想要安装到的目录,比如我的是 /e/curvelettool/fftw2,有的电脑可以通过,有的不可以,如果报如下configure:error:在这里插入图片描述
更改为以下命令即可

./configure  --build=x86_64 --prefix=/your/install/path  --with-pic

(3)在cmd命令行输入:make 进行编译,编译会持续一段时间,时间长短,视电脑性能而定。
(4)在cmd命令行输入:make install开始安装,文件会安装到fftw2,安装后的文件如下图所示:
在这里插入图片描述

5.编译Curvelab2.1.3

(1)cmd进入curveLab2.1.3所在路径。
(2)修改makefile.opt文件

在这里插入图片描述
a).修改FFTW_DIR的值为fftw-2.1.5的绝对路径。
b).修改MTALB_DIR的值为Matlab的安装路径。
c).修改MEX程序的路径。
d).修改mex.h头文件所在的路径。

(3)在cmd中输入make lib,编译静态链接库文件。我是在编译/e/curvelettool/CurveLab-2.1.3/fdct3d_outcore/src报错,可以不管这个。
(4)在cmd中输入make matlb,编译mex文件
编译完成,over

三、vs中fortran调用matlab引擎

1.vs编译器设置

(1)设置头文件目录
我用的是vs2012+IVF2013,在菜单中选择工具->选项,在对话框左边选择Intel® Fortran->Compilers,在右边的Includes里添加:
E:\MATLABR2016b\extern\include (按自己的来)
(2)设置库文件目录
同理,在右边的Libraries里添加:
E:\MATLABR2016b\extern\lib\win32\microsoft
(3)添加链接库输入项
在解决方案资源管理器里选择对应的项目单机右键选择最下面的“属性”弹出属性对话框,在右边选择Linker->Input,在Additional Dependencies里添加:libeng.lib libmx.lib libmex.lib(注意:*.lib文件之间用空格分隔,不可用逗号分隔)
(4)设置环境变量
现在生成时就没问题出现了,但是运行程序时可能会出现“因为计算机中丢失libeng.dll”等类似问题。第(4)步就解决这个问题的把E:\MATLABR2016b\bin\win32;添加到PATH里边(如果是64位系统则添加E:\MATLABR2016b\bin\win64)。
在Win10下具体可以这样做:在桌面上选择“计算机”图标,右键弹出选单,在其中选择“属性”,然后在弹出的窗口中选中左边的高级系统设置,在属性对话框里选择“高级”选项卡,载选择“环境变量”,在新对话框里的系统环境下边找到PATH这一项选中,然后编辑,在后边添加
E:\MATLABR2016b\bin\win32;
64位系统选择
E:\MATLABR2016b\bin\win64;
(注意:不要删除path里原有的其他路径。如果设置环境变量前打开了visual studio ,那么需要重启visual studio。)

2.matlab里设置(调用自定义函数(.m/.mex)需要设置,类似plot等库函数不用)

在 E:\MATLABR2016b\toolbox文件夹里添加自己写的函数的m文件(mycontrol文件夹)
matlab软件主页>设置路径>添加文件夹>写有自己matlab函数的文件夹,保存后重启matlab.
在这里插入图片描述
遇到运行不了如打开不了引擎和缺少dll等问题可以参考VS通过调用matlab引擎方式在VS里调用matlab函数和自己写的.m文件

3.Fortran编写代码调用matlab引擎

可以参考matlab官方帮助文件,以及FORTRAN & MATLAB 混合编程 matlab和fortran混合编程Matlab mexFortran调用matlab引擎简单办法等资料。

参考资料

本文在他人的基础上进行简单总结整理,由于细节问题较多,大家在遇到问题时可以参考以下资料,感谢这些博主!!!
Windows10安装CurveLab2.1.3和编译安装FFTW2.1.5-吐血整理
Windows 编译 FFTW 2/3 以及安装CurveLab
VS通过调用matlab引擎方式在VS里调用matlab函数和自己写的.m文件
FORTRAN & MATLAB 混合编程
matlab和fortran混合编程Matlab mex
Fortran调用matlab引擎简单办法
Matlab mex -setup 找不到编译器:为MATLAB安装MinGW64 Compiler编译器

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值