Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

c++0x thread problem

[es] :: C/C++ programiranje :: c++0x thread problem

[ Pregleda: 2228 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

the_tosic

Član broj: 37314
Poruke: 381
*.kbcnet.rs.



+128 Profil

icon c++0x thread problem17.12.2009. u 15:45 - pre 173 meseci
Nabavio sam knjigu "C++ concurrency in action" i imam problem sa pokretanjem primera. Sistem je windows7, gcc 4.4 instaliran sa TDM/MinGW Installer-om.

Code:
#include <iostream>
#include <thread>

using namespace std;

void hello(){
        cout<<"Hello Concurrent World\n";
}

int main(){
        thread t(hello);
        t.join();
}

a greska je:

Citat:
PS C:\Users\marko\desktop> gcc -std=c++0x -o bla s.cpp
s.cpp: In function 'int main()':
s.cpp:11: error: 'thread' was not declared in this scope
s.cpp:11: error: expected ';' before 't'
s.cpp:12: error: 't' was not declared in this scope


thread header postoji, eclipse ne prijavljuje gresku na: #include <thread>

EDIT: Da dodam samo MinGW installer nisam koristio jer instalira staru verziju gcc (3.4), pokusavao sam da instaliram sam sa uputstvom sa http://www.mingw.org/wiki/HOWT...l_the_MinGW_GCC_Compiler_Suite ali to je uputstvo za staru verziju.

[Ovu poruku je menjao the_tosic dana 17.12.2009. u 16:57 GMT+1]


EDIT2: deinstalirao sam TDM/MinGW i instalirao MinGW prema uputstvu: http://www.mingw.org/wiki/Getting_Started sada od gresaka izbacuje:
Citat:
C:\Users\wowex\Desktop> gcc -std=c++0x s.cpp -o bla
In file included from c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/postypes.h:42,
from c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iosfwd:42,
from c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ios:39,
from c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ostream:40,
from c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iostream:40,
from s.cpp:1:
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:159: error: '::swprintf' has not been declared
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:166: error: '::vswprintf' has not been declared
s.cpp: In function 'int main()':
s.cpp:11: error: 'thread' was not declared in this scope
s.cpp:11: error: expected ';' before 't'
s.cpp:12: error: 't' was not declared in this scope

C:\Users\wowex\Desktop>

Ovo se ne pojavljuje kada prevodim normalan (bez thread-a) program i bez -std=c++0x parametra

[Ovu poruku je menjao the_tosic dana 17.12.2009. u 19:07 GMT+1]
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.psit.rs.



+9 Profil

icon Re: c++0x thread problem18.12.2009. u 14:53 - pre 173 meseci
Nisam trenutno gledao MinGW, ali ako i dalje budeš imao problema + ako moraš da budeš na Windowsu, koristi Boost Threads. Uglavnom je razlika samo u headeru i namespace-u koje treba da uključiš... header je <boost/thread.hpp>, a namespace je boost.

Naravno, treba da build-uješ boost-ovu thread biblioteku ili ako ti je lakše (mada nikad nisam probao), skini instaler za Windows ovde.
 
Odgovor na temu

the_tosic

Član broj: 37314
Poruke: 381
*.kbcnet.rs.



+128 Profil

icon Re: c++0x thread problem19.12.2009. u 14:54 - pre 173 meseci
E hvala probacu ovo. Pa ako ne bude islo instaliracu ubuntu:)
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
200.49.157.*

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: c++0x thread problem21.12.2009. u 19:53 - pre 173 meseci
Za to sto ti hoces da probas ti treba kompajler koji podrzava c++0x, ili barem standardnu c++ biblioteku koja to ima implementirano, jer primer koristi std::thread koji nije implementiran u libstdc++ koja ide uz mingw.

Najblize sto imas tome na standardnim kompajlerima je boost::thread.

Takodje dinkumware prodaje c++ biblioteku sa svojom implementacijom threadova ( Dinkum/threads/thread )



Tko leti vrijedi
 
Odgovor na temu

VladimirCDT
VladimirCDT
programer
Beograd

Član broj: 220281
Poruke: 45
91.185.101.*



+2 Profil

icon Re: c++0x thread problem24.12.2009. u 23:48 - pre 173 meseci
Posto jos ne koristim novi standard, nisam kompetentan za ovo i ne znam da ti dam tacan odgovor. Zato je moja pretpostavka da u gcc 4.4 verziji jos nisu ukljuceni threadovi. Posto vec postoji 4.5 i posto su thredovi jos uvek samo delimicno podrzani, ne bi me cudilo da stvari koje su izlistane na zvanicnom sajtu - trenutno vaze samo za standardnu biblioteku u 4.5.

Kazem, nisam upucen dovoljno, ovo je samo moje nagadjanje.

Ovo sto su ti kiklop74 i Goran Arandjelovic preporucili stoji, jer se novi standard upravo bazira na boost-u.
 
Odgovor na temu

[es] :: C/C++ programiranje :: c++0x thread problem

[ Pregleda: 2228 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.