C++ __使用g++;在mingw下运行

C++ __使用g++;在mingw下运行,c++,windows,mingw,imp,C++,Windows,Mingw,Imp,我有一个简单的socket程序,我正试图使用运行在Win8系统上的mingw(两个最新版本)中的g++来编译它。我得到了常见的链接器错误 undefined reference to `__imp_socket' undefined reference to `__imp_gethostbyname' 我尝试添加-lws2_32,但运气不佳;i、 它仍然找不到参考资料。有人能告诉我我还缺什么吗 以下是完整的输出: G:\source\kak>g++ -o ./test_client -l

我有一个简单的socket程序,我正试图使用运行在Win8系统上的mingw(两个最新版本)中的g++来编译它。我得到了常见的链接器错误

undefined reference to `__imp_socket'
undefined reference to `__imp_gethostbyname'
我尝试添加-lws2_32,但运气不佳;i、 它仍然找不到参考资料。有人能告诉我我还缺什么吗

以下是完整的输出:

G:\source\kak>g++ -o ./test_client -lws2_32 test_client.C
C:\Users\kenkahn\AppData\Local\Temp\ccDZTr9b.o:test_client.C:(.text+0x4f): undefined reference to `__imp_inet_addr'
C:\Users\kenkahn\AppData\Local\Temp\ccDZTr9b.o:test_client.C:(.text+0x6b): undefined reference to `__imp_socket'
C:\Users\kenkahn\AppData\Local\Temp\ccDZTr9b.o:test_client.C:(.text+0x8b): undefined reference to `__imp_connect'
d:/program files/mingw/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\kenkahn\AppData\Local\Temp\ccDZTr9b.o: bad reloc address 0xc in section `.xdata'
collect2.exe: error: ld returned 1 exit status

尝试将
-lws2\u 32
放在
test\u client.C
参数之后。gcc(ld)的链接器对可链接事物的顺序很敏感,这可能是它在链接时找不到导入函数的原因。

在选项中添加了
-v
后发布
g++
命令的输出。另外,请记住,“最新版本”对gcc或MinGW没有多大帮助,因为有许多不同的来源。例如,看起来您正在使用GCC4.8.1-我有一个使用GCC4.8.2的MinGW安装。如果这个答案解决了您的问题,请接受它(绿色勾选)。