【发布时间】:2015-02-13 13:24:54
【问题描述】:
我正在尝试用 Winsock 函数做一个小测试。我在 Eclipse IDE 中使用 MinGW c++ 编译器。 minggw32-base安装版本是2013072200,eclipse版本是Kepler SR1 Build 20130919-0819
我的程序如下所示(实际上现在什么都没做..):
SocketTest_Server.hpp:
#ifndef SOCKETTEST_SERVER_HPP_
#define SOCKETTEST_SERVER_HPP_
#include <cstdlib>
#include <iostream>
#include <winsock2.h>
#endif /* SOCKETTEST_SERVER_HPP_ */
SocketTest_Server.cpp:
#include "SocketTest_Server.hpp"
using namespace std;
int main(int argc, char *argv[])
{
cout << "Test" << endl;
return 0;
}
我通过以下方式添加了库路径:
项目属性 --> C/C++ 常规 --> 路径和符号 --> 库:添加 ws2_32 项目属性 --> C/C++ 常规 --> 路径和符号 --> 库路径:添加 C:/MinGW/lib
现在编译时,我收到以下错误消息(显示为完整的编译命令行):
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o SocketTest_Server.o "..\\SocketTest_Server.cpp"
g++ -LC:/MinGW/lib -o SocketTest_Server.exe SocketTest_Server.o -lws2_32
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib/crt2.o:crt1.c:(.text+0x376): undefined reference to `__mingw_glob'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib/crt2.o:crt1.c:(.text+0x47d): undefined reference to `__mingw_glob'
collect2.exe: error: ld returned 1 exit status
有人可以告诉我我在这里做错了什么吗?非常感谢!
【问题讨论】:
-
尝试使用 MinGW-w64(32 位,如果必须)。您可以通过the installer 获取。您应该能够将它安装在与当前 MinGW 安装相同的位置(在首先删除其他工具链之后,可能通过将
C:\MinGW重命名为C:\MinGW-backup。然后 Eclipse 不需要更改其设置。 -
非常感谢@rubenvb,这解决了问题!
-
等一下,我会把它变成答案;)