matlab使用mex编译c语言报错undefined reference to `__imp_WSAStartup‘

matlab中使用mex编译c语言文件报错提示:
undefined reference to __imp_WSAStartup'

最近我在做一个simulink和其他仿真软件的联合仿真,需要用到udp或者tcp/ip通讯,由于我之前没有学m语言,但是对于c语言比较熟悉,于是就想用c语言写一个tcp/ip的服务器,嵌入到simulink里调用仿真,具体的simulink嵌入c语言见此处,但是在使用mex编译的时候遇到了错误undefined reference to __imp_WSAStartup',查阅资料后,发现网上资料较少,特此记录一下,我的解决方法如下:

  • 1、找到电脑里的wsock32.lib文件将其复制到matlab当前目录下,我的wsock32.lib文件在E:\Program Files\MATLAB\R2021a\sys\lcc64\lcc64\lib64
  • 2、在程序中加入以下代码:
#pragma comment(lib, "WSock32.lib")
  • 3、修改matlab命令行窗口的mex命令为:
mex c语言文件名 -lwsock32.lib

注:造成此错误的原因主要是在一般编译器中不会直接连接编译wsock动态库,需要手动链接动态库。

笔者能力和水平有限,文中难免有错误和纰漏之处,请大佬们不吝赐教;
如果解决了的话,希望大家能给我点点赞谢谢。
如果本文帮到了您,请帮忙点个赞 👍👍👍;
如果本文帮到了您,请帮忙点个赞 👍👍👍;
如果本文帮到了您,请帮忙点个赞 👍👍👍;
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值