MinGW:使用ws2_32库时未定义对`__mingw_glob'的引用

时间:2015-02-13 13:24:55

标签: c++ eclipse mingw winsock

我正在尝试使用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;
}

我通过以下方式添加了库路径:

项目属性 - &gt; C / C ++一般 - &gt;路径和符号 - &gt;图书馆:添加了ws2_32 项目属性 - &gt; C / C ++一般 - &gt;路径和符号 - &gt;库路径:添加了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

有人可以告诉我这里我做错了什么吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

这个问题可能是由很多事情引起的,但我相信你有一个过时的工具链。

在任何情况下,您都可以升级到更新,更完整的MinGW-w64,它在Windows上提供带有GCC的32位和64位工具链(ARM传入)。 您可以使用the installer来获取它。

在您的情况下,我建议只删除C:\MinGW中的所有内容并在同一个位置安装MinGW-w64(32位)工具链。 Eclipse甚至不知道发生了什么,也不需要更改设置。