From: andreas <pas...@fr...> - 2011-05-04 21:32:09
|
Hi. I know the question was asked 100 times before but for me the answers do not work. So I have to ask it again: I'm unable to link to ws2_32 or wsock32 and found no solution yet. Can anybody help me? Thanks, Andreas $ make win32 i586-mingw32msvc-g++ -O3 -Wall -L/usr/lib32/wine/ -lws2_32 -lwsock32 -static-libgcc -static-libstdc++ -shared -o socksswitch.exe *.cpp i586-mingw32msvc-g++: nicht erkannte Option »-static-libstdc++« /tmp/ccmUPFHj.o:socket.cpp:(.text+0x5a): undefined reference to `_closesocket@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x8a): undefined reference to `_closesocket@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0xb6): undefined reference to `_closesocket@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0xbc): undefined reference to `_WSACleanup@0' /tmp/ccmUPFHj.o:socket.cpp:(.text+0xff): undefined reference to `_accept@12' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x13e): undefined reference to `_listen@8' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x17c): undefined reference to `_htons@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x19b): undefined reference to `_bind@12' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x1cb): undefined reference to `_closesocket@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x255): undefined reference to `_inet_addr@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x281): undefined reference to `_htons@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x2a3): undefined reference to `_connect@12' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x2d0): undefined reference to `_gethostbyname@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x6fa): undefined reference to `_recv@16' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x9b4): undefined reference to `_WSAStartup@8' /tmp/ccmUPFHj.o:socket.cpp:(.text+0xca4): undefined reference to `_WSAStartup@8' /tmp/ccmUPFHj.o:socket.cpp:(.text+0xf6e): undefined reference to `_socket@12' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x11de): undefined reference to `_socket@12' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x145f): undefined reference to `_closesocket@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x15af): undefined reference to `_closesocket@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x16cd): undefined reference to `_closesocket@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x16fa): undefined reference to `_htons@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x1719): undefined reference to `_bind@12' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x175d): undefined reference to `_closesocket@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x178a): undefined reference to `_htons@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x17a9): undefined reference to `_bind@12' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x181e): undefined reference to `_send@16' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x1c3e): undefined reference to `_recvfrom@24' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x1f70): undefined reference to `_gethostbyname@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x1fb3): undefined reference to `_htons@4' /tmp/ccmUPFHj.o:socket.cpp:(.text+0x1fed): undefined reference to `_sendto@24' /tmp/cczRlZMt.o:socksswitch.cpp:(.text+0x5ec): undefined reference to `___WSAFDIsSet@8' /tmp/cczRlZMt.o:socksswitch.cpp:(.text+0x2600): undefined reference to `_select@20' /tmp/cczRlZMt.o:socksswitch.cpp:(.text+0x261d): undefined reference to `___WSAFDIsSet@8' collect2: ld gab 1 als Ende-Status zurück make: *** [all] Fehler 1 |
From: andreas <pas...@fr...> - 2011-05-04 22:13:23
|
Ok, I found the solution by myself. But I don't understand... > $ make win32 > i586-mingw32msvc-g++ -O3 -Wall -L/usr/lib32/wine/ -lws2_32 -lwsock32 > -static-libgcc -static-libstdc++ -shared -o socksswitch.exe *.cpp It's working with the LDFLAGS at the end: $ make mingw32 i586-mingw32msvc-g++ -osocksswitch.exe -O3 -Wall -fmessage-length=0 *.cpp -lws2_32 -static-libgcc Is it a bug or a feature? |
From: Chris W. <ch...@qw...> - 2011-05-04 22:21:11
|
Hi Andreas, On Thu, 5 May 2011, andreas wrote: > Ok, I found the solution by myself. But I don't understand... > >> $ make win32 >> i586-mingw32msvc-g++ -O3 -Wall -L/usr/lib32/wine/ -lws2_32 -lwsock32 >> -static-libgcc -static-libstdc++ -shared -o socksswitch.exe *.cpp > > It's working with the LDFLAGS at the end: > > $ make mingw32 > i586-mingw32msvc-g++ -osocksswitch.exe -O3 -Wall -fmessage-length=0 > *.cpp -lws2_32 -static-libgcc > > Is it a bug or a feature? It's a feature of gcc on ELF platforms such as Linux that order doesn't matter there. This feature does not extend to non-ELF platforms such as Windows. The gcc manual, and simple logic, says that objects which contain referenced symbols (such as libraries) must come after the objects that reference them, since only then does the compiler know that a symbol is missing (undefined), and to look for it in subsequent objects (such as the library). http://www.network-theory.co.uk/docs/gccintro/gccintro_18.html http://gcc.gnu.org/ml/gcc-help/2004-04/msg00110.html http://www.mingw.org/wiki/The_linker_consistently_giving_undefined_references Cheers, Chris. -- _____ __ _ \ __/ / ,__(_)_ | Chris Wilson <chr...@qw...> Cambs UK | / (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Ruby/Perl/SQL Developer | \__/_/_/_//_/___/ | We are GNU : free your mind & your software | |
From: Saeteurn S. <San...@gr...> - 2011-05-04 22:45:03
|
>From what I recall, GCC links in dependency order, left to right. Thankies ^^ -San Saeteurn San Saeteurn Software Engineer, Live Production Solutions (LPS) Grass Valley 400 Providence Mine Rd Nevada City, CA 95959 USA Phone: (1) 530-478-3571 Fax: (1) 530-478-4020 Mobile: (1) 530-370-7294 san...@gr... www.grassvalley.com -----Original Message----- From: andreas [mailto:pas...@fr...] Sent: Wednesday, May 04, 2011 3:13 PM To: min...@li... Subject: Re: [Mingw-users] Link to ws2_32 or wsock32 Ok, I found the solution by myself. But I don't understand... > $ make win32 > i586-mingw32msvc-g++ -O3 -Wall -L/usr/lib32/wine/ -lws2_32 -lwsock32 > -static-libgcc -static-libstdc++ -shared -o socksswitch.exe *.cpp It's working with the LDFLAGS at the end: $ make mingw32 i586-mingw32msvc-g++ -osocksswitch.exe -O3 -Wall -fmessage-length=0 *.cpp -lws2_32 -static-libgcc Is it a bug or a feature? ------------------------------------------------------------------------ ------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ MinGW-users mailing list Min...@li... This list observes the Etiquette found at http://www.mingw.org/Mailing_Lists. We ask that you be polite and do the same. Disregard for the list etiquette may cause your account to be moderated. _______________________________________________ You may change your MinGW Account Options or unsubscribe at: https://lists.sourceforge.net/lists/listinfo/mingw-users Also: mailto:min...@li...?subject=unsubscribe |