之前提到Matlab代码可以转为C代码,并编译为dll。
了凡春秋:Matlab代码转C并编译为dllzhuanlan.zhihu.com默认情况下生成的dll为64位,如果要编译32位dll,就需要做额外配置。32位程序有个好处,即32位、64位系统都能跑,对于平时开发没啥用,但对于工程部署会带来方便,对用户操作系统位数没有要求,即装即用。
Matlab要生成32位dll,核心就是要配置编译工具链。Matlab有示例介绍,这里做个使用总结。
环境
Win10x64,Matlab2019b,VS2015
准备
需要两个文件:my_msvc_32bit_tc.m和myRtwTargetInfo.txt。前者可以在%matlabroot%examplescodermain路径下找到,后者的内容如下
function
将这两个文件放到一个目录下。
注册工具链
首先,得到自己MSVC的版本号,比如VS2015就是14.0。下面代码可以自动检测
installed_compilers
结果
>> VersionNumbers
VersionNumbers =
1×1 cell 数组
{'14.0'}
然后,利用VersionNumbers注册工具链
%% 注册工具链
这样就注册好了。
编译32位dll
如下配置、编译,就得到32位dll:
%% 生成Dll
同样道理,要编写32位测试程序,配置如下
%% 生成测试Exe看dll是否能准确运行
注销工具链
如果32位工具链不想用了,可以注销:
%% 可选: 注销工具链
结果图