大致上是参照
这篇文章完成的, gcc的版本是gcc4.6
懒的打字, 我就稍微引用一下原文吧;
首先是环境,gcc 4.6用的 C++ 库是 libstdc++ v3,这个库的完整代码包含在 gcc 代码里,我这里使用的是在
Cygwin中升级GCC中提供的gcc地址: ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/
1. 升级完gcc后发现对C++0x支持基本正确, 不过测试线程库时发现无法编译通过, 显示std::thread未定义, goolge了一下发现需要添加如下宏定义:
#ifdef __GXX_EXPERIMENTAL_CXX0X__
#define _GLIBCXX_HAS_GTHREADS 1
#define _GLIBCXX__PTHREADS 1
//#define _POSIX_TIMEOUTS=1
#endif
#define _GLIBCXX_HAS_GTHREADS 1
#define _GLIBCXX__PTHREADS 1
//#define _POSIX_TIMEOUTS=1
#endif
注意这里与MinGW的不同, _POSIX_TIMEOUTS这个宏定义在cygwin下是不需要的, 因为如果添加的话会显示pthread的函数pthread_mutex_timedlock未定义, 查了一下发现cygwin中的pthread.h不存在该函数, 这个函数是存在于p