Reputation: 2433
I am using GCC 4.5.0 with the Eclipse IDE (if that matters) on Windows via MinGW.
I'm using the -std=c++0x
flag.
I find that _GLIBCXX_HAS_GTHREADS
still isn't defined, so thread
for me still isn't a member of namespace std
. -- or perhaps it is something else.
What does one do to get C++11 threading support with GCC?
P.S. It doesn't recognize the -pthread
flag. I read in a question elsewhere on this site that this works.
Edit: Stupid me: pthread
is a library, not an option. It's installed, gcc can find the header, but still no cigar.
Upvotes: 17
Views: 21247
Reputation: 1439
There is already a lightweight header-only library that implements std::thread and sync primitives in pure win32 API: https://github.com/meganz/mingw-std-threads
IT should work with any version of MinGW that has proper C++11 support.
Upvotes: 3
Reputation: 1758
Use this builts of mingw: http://code.google.com/p/mingw-builds/downloads/list
Upvotes: 3
Reputation: 68691
The native Windows builds of gcc do not support the new C++0x/C++11 thread library.
The (commercial) Just::Thread library adds support to the TDM port of gcc 4.5.2 for Windows, as well as MSVC.
Upvotes: 4
Reputation: 47478
Works fine on Linux (g++ -std=c++0x -lpthread
with no additional defines).
However, this thread on Cygwin mailing list suggests that, at least as of 4.4, _GLIBCXX_HAS_GTHREADS was disabled by an autoconf test when building libstdc++ because pthread implementation of cygwin is missing pthread_mutex_timedlock. Perhaps MinGW has the same problem.
Also, this thread on comp.lang.c++.moderated says the same thing. Not supported by the library.
Upvotes: 11
Reputation: 6208
What does one do to get C++0x threading support with GCC?
Use Boost? Seriously http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html claims threads aren't complete even in mainline head so it isn't going to be in any current release.
Upvotes: 3