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

萧霍英
2023-12-01

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动态库,需要手动链接动态库。

笔者能力和水平有限,文中难免有错误和纰漏之处,请大佬们不吝赐教;
如果解决了的话,希望大家能给我点点赞谢谢。
如果本文帮到了您,请帮忙点个赞 ;
如果本文帮到了您,请帮忙点个赞 ;
如果本文帮到了您,请帮忙点个赞 ;
 类似资料: