MinGW-w64 gcc compilier improperly linked with matlab libraries

23 visualizaciones (últimos 30 días)
Benjamin Spencer
Benjamin Spencer el 25 de Abr. de 2016
Comentada: Abdulrahman el 14 de Feb. de 2023
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 get the same error. I believe a similar unanswered question has been posted here .
I am using Matlab 2016a, MinGW-w64 version 4.9.2, and Windows 10.

Respuestas (1)

Dave Behera
Dave Behera el 2 de Mayo de 2016
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 comentarios
Brian Smigielski
Brian Smigielski el 27 de Jun. de 2018
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
Abdulrahman el 14 de Feb. de 2023
>> mex Your_C_code.c "C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\x64\WS2_32.Lib"

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by