MinGW-w64 gcc compilier improperly linked with matlab libraries
Afficher commentaires plus anciens
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.
Réponses (1)
Dave Behera
le 2 Mai 2016
0 votes
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 commentaires
Benjamin Spencer
le 2 Mai 2016
Modifié(e) : Benjamin Spencer
le 2 Mai 2016
Brian Smigielski
le 27 Juin 2018
Hi Benjamin,
Did this ever get resolved? I too have the same problem only with R2017b. One thing I can recommend is to try:
"-LC:\Program Files\MATLAB\R2016a\sys\lcc64\lcc64\lib64"
with the double quotes otherwise the space in Program Files screws up MATLAB.
But, I'm not sure if that's the problem either
Brian Smigielski
le 27 Juin 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
le 14 Fév 2023
>> mex Your_C_code.c "C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\x64\WS2_32.Lib"
Catégories
En savoir plus sur MATLAB Support for MinGW-w64 C/C++ Compiler dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!