Boost mag meine function nich
-
jo... ich wollt ml threads probieren ... aber boost verweigert mir die einfachsten threadoperationen ...
ich hab den simplen quelltext:#include <boost/thread/thread.hpp> #include <boost/thread/mutex.hpp> #include <boost/thread/thread.hpp> #include <boost/thread/condition.hpp> #include <boost/thread/exceptions.hpp> #include <boost/thread/mutex.hpp> #include <boost/thread/once.hpp> #include <boost/thread/recursive_mutex.hpp> #include <boost/thread/tss.hpp> #include <boost/thread/xtime.hpp> #include <iostream> using namespace std; boost::mutex io_mutex; void inc() { int i; i++; }; int main() { boost::thread thrd1(inc()); thrd1.join; return 0; };und bekomme exakt 2 fehler:
main.cpp:26: error: invalid use of void expression main.cpp:27: error: statement cannot resolve address of overloaded functionkann mir einer sagen, wie ich vor allem fehler no. 1 ( den mit der void expression) beheben könnte ?
dank euch schonmal
-
Du solltest die Funktion und nicht deren Ergebnis übergeben.
boost::thread thrd1(inc);
-
Du willst doch die Funktion (bzwl. einen Zeiger darauf) übergeben, nicht das Funktionsergebnis. Also lass die Klammern nach inc weg. In der nächsten Zeile fehlen sie dagegen.
-
boah ey ... echt hammer forum ... 2 min..
ich bin überwältigt ...also kompilliert hatter jetz
nicht allerdings von den verschiedenen linker errors die mir mein nettes Dev nun entgegenschmeißt:
[Linker error] undefined reference to `boost::thread::join()' [Linker error] undefined reference to `boost::thread::~thread()' ... da kommen dann noch 6 sone teilehabter da auch ne erklärung?
wenn ja wär das Hammer ^^
-
Hast du denn auch die Thread-lib mit gelinkt bzw. weiß dein Compiler wo sich die dazugehörigen libs und dlls befinden??
-
die sind im include ordner wie zum beispiel iostream auch ... reicht das... oder muss ich die noch extra einbinden ?
-
boost::thread ist eine Bibliothek. Hier reicht es nicht einfach header einzubinden. Wie hast du boost denn installiert? Hast du die boost-libs auch für deinen Compiler erstellt?
-
ich denk mal da liegt der Hase im Pfeffer .....ich hab den boost ordner lediglich in die include geschmissen ... war wohl n bissel voreilig, was? hoffe ihr seid mir nicht böse
-
so habs gefunden wie ichs installiere .. gibt da n schönes tut bei
http://wagjo.com/index.php?id=27
danke für alles leute .. ich meld mich hier mal an .. das scheint echt gut zu sein ^^
-
boost ist eine methode , also thread.join()