__imp链接错误使用g++在mingw下运行
__imp link errors using g++ running under mingw
我有一个简单的套接字程序,我试图在Win8系统上使用g++运行mingw(两个最新版本)来编译它。我得到了常见的链接器错误
undefined reference to `__imp_socket'
undefined reference to `__imp_gethostbyname'
我试着添加-lws2_32没有运气;也就是说,它仍然找不到参考。谁能告诉我还有什么我可能遗漏的吗?
下面是完整的输出:
G:sourcekak>g++ -o ./test_client -lws2_32 test_client.C
C:UserskenkahnAppDataLocalTempccDZTr9b.o:test_client.C:(.text+0x4f): undefined reference to `__imp_inet_addr'
C:UserskenkahnAppDataLocalTempccDZTr9b.o:test_client.C:(.text+0x6b): undefined reference to `__imp_socket'
C:UserskenkahnAppDataLocalTempccDZTr9b.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:UserskenkahnAppDataLocalTempccDZTr9b.o: bad reloc address 0xc in section `.xdata'
collect2.exe: error: ld returned 1 exit status
尝试将-lws2_32
放在test_client.C
参数之后。gcc的链接器(ld)对可链接事物的顺序很敏感,这可能就是为什么它在链接时找不到您导入的函数的原因。
相关文章:
- MINGW - 正确运行函数所需的 cdecl
- MinGW是否需要在Visual Studio上运行C++
- Clang 在Clion Windows中,如何使用mingw-w64而不是Windows VC运行
- 在Windows 10上运行带有minGW的SFML C++程序
- MinGW 编译的可执行文件与网络无法在 x64 系统上运行
- 使用MinGW gcc/g++(nuwen发行版)编译的程序出现运行时错误
- 在Windows 10上使用MINGW构建的Clang的调试构建无法运行
- MinGW .h 编译文件不起作用:此文件的版本与您运行的 Windows 版本不兼容
- 如何编写运行MingW的脚本文件
- 获取记事本++以使用minGW编译和运行C++程序
- 使用 MinGW 和 netbeans 7.3.1 运行错误
- Unix替代此mingw运行时代码
- 为什么使用MinGW时std::to_string()的运行速度是使用VS2012时的16倍
- gcc(Linux/MinGW)是否存在编译器标志,以便在运行时引发除以零的错误
- 反转不在MinGW中运行的字符串
- 我怎样才能把水冲干净?(环境:Mingw编译器,运行在xterm或minty的Cygwin)
- 在Windows 7下运行MinGW gcc编译器,不设置环境变量
- 如何在Eclipse中运行使用MinGW编译的C++程序?如何"link(?)"?
- MinGW产生exe,当在不同的系统上运行时会产生"not compatible with the version of Windows"
- OpenCV 和 MinGW 的运行时错误