tags:

views:

161

answers:

1

I am trying to compile gcc 4.5.1 for cygwin with support for C++0x threads. However, the resulting gcc does not recognize the -pthread option.

My configure command is:

./configure --enable-bootstrap --enable-shared --enable-shared-libgcc
            --with-gnu-ld --enable-languages=c,c++ --enable-libgomp
            --enable-libssp --enable-threads=posix --with-__thread

The sample program is:

#include <iostream>
#include <thread>
using namespace std;

void hello()
{
 cout << "Hello Concurrent World!" << endl;
}

int main()
{
 cout << "starting" << endl;
 thread t(hello);
 t.join();
 cout << "ending" << endl;
 return 0;
}

I am compiling a C++ program using

$ gcc -Wall -g -std=c++0x -pthread Trial.cpp
gcc: unrecognized option '-pthread'
Trial.cpp: In function `int main()':
Trial.cpp:21:5: error: `thread' was not declared in this scope
Trial.cpp:21:12: error: expected `;' before `t'
Trial.cpp:22:5: error: `t' was not declared in this scope

My question is how should I configure gcc?

A: 

I was able to compile your code with g++ with just -pthread and -std=c++0x flags alone or with gcc using the previous flags plus -lstdc++.

However, when I used your flags, it did not work (the error was quite different though), so maybe try it with the following flags next time (because it does not have to necessarily be caused (only) by you compiling GCC with wrong config).

gcc -lstdc++ -std=c++0x -pthread your.cpp
g++ -std=c++0x -pthread your.cpp
Palmik
Both options give the same error that -pthread option is unrecognized.I suspect the issue is with cygwin as outlined in:http://stackoverflow.com/questions/3414834/gcc-stdthread-problem
Salil