MinGW-w64 gcc compilier improperly linked with matlab libraries
조회 수: 23 (최근 30일)
이전 댓글 표시
I am using the MinGW-64 compiler to attempt to compile some C code in Matlab using mex.
The following code works fine:
mex('-c', '-g', '-I../include', filenames)
however, the below code gives the following error
mex('-g', '-I../include', -output, 'MexFunction.c', filenames, 'ws2_32.lib')
Error using mex
gcc: error: ws2_32.lib: No such file or directory
ws2_32.lib is a matlab library on the matlab path and I would get the same error no matter what library I chose. If I add the lib path with -Lpath ie.
mex('-g', '-I../include', -output, 'MexFunction.c', filenames,...
'-LC:\Program Files\MATLAB\R2016a\sys\lcc64\lcc64\lib64', 'ws2_32.lib')
I am using Matlab 2016a, MinGW-w64 version 4.9.2, and Windows 10.
댓글 수: 0
답변 (1개)
Dave Behera
2016년 5월 2일
You need to specify the library name with 'l' option:
Also, it used gcc under the hood, so it may not be able to detect the file even if it is on the MATLAB path.
If it does not help, then use -v mode (verbose) to find the verbose output and paste it here.
댓글 수: 4
Brian Smigielski
2018년 6월 27일
Actually I was able to successfully compile. I did
mex -v '-LC:\Program Files\MATLAB\R2017b\sys\lcc64\lcc64\lib64' -lws2_32 open_socket_connection.cpp
and it worked! Use single quotes and make sure you include -lws2_32 so it knows which .lib file to use.
Abdulrahman
2023년 2월 14일
>> mex Your_C_code.c "C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\x64\WS2_32.Lib"
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!