Matlab和c++混合编译(Matlab2016b+VS2017)

本文介绍了如何在Matlab2016b中进行C++混合编程,首先尝试使用TDM-GCC但遇到问题,然后详细步骤切换到VS2017作为编译器,包括在matlab的mexopts目录下放置VS2017的XML配置文件,最终成功完成mex文件的编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Matlab和c++混合编译

1.安装TDM-GCC

八月第一天,打算以后把在学习中遇到的问题,学习到的东西做个记录,防止自己忘记。
昨天因为需要用到一个数据集的toolbox,在官网下载好后用matlab打开,发现matlab调用的是同文件目录下面的cpp文件,作为小白的博主在网上找了一下,发现是matlab和c++的联合编译。也就是Mex指令。但是在matlab里面输入mex -setup的时候,编译报错,显示找不到编译器。并且提示下载免费的TDM-GCC编译器,通过百度,我参考了以下链接下载好了TDM-GCC。
https://blog.youkuaiyun.com/xinjitmzy/article/details/78563493
作者写的比较简洁,但是步骤比较清楚,我也按照自己的版本安装好。并且在matlab中再次输入mex -setup的时候能够识别到这个编译器。
但是问题来了,我编写测试代码hello world的时候,代码如下

#include "mex.h"
void mexFunction(int nlhs,mxArray* plhs[],int nrhs,mxArray* rhs[])
{
    printf("hello world!");
}

比较简单,其实就是创建一个cpp文件,我命名为ttest.cpp,然后再在matlab命令行执行
mex -ttest.cpp但是此时报错,mex使用错误
错误如下
在这里插入图片描述
然后我再网上找了很多都没有找到合适的解决方案,明明setup都成功了,为什么在这一步会报错呢?在这里网上找了好久都

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值