Ursäkta den luddiga rubruken, men jag har just upptäckt multithreading-möjligheterna i boost-paketet, men när jag försöker implementera det i mitt projekt, (ca 4800 rader kod), så skiter det sig. Jag har en god ide om hur jag skall implementer det i mitt program, och det kommer minska körtiden på mitt program från 1-2 veckor till ett par dagar, (på 8 CPU:er) så jag måste få detta till att funka!
Så jag testar att kompilera en "hello world, I'm a thread" fil på ett par rader, och det funkar. Sedan testar jag att lägga in exakt dessa rader i min egen main-fil (där jag har en massa annan kod, men inget som har med boost, eller threads att göra), och då funkar det inte, (felmeddelandet är ett par sidor långt).
Så då testade jag att börja tabort all min egna kod, och objekt i mitt projekt, och ha kvar "hello world", och detta funkar, men när jag lägger in kod som inte har något att göra med boost, eller threads efter min trådade "hello world" funktion så går allt på röven. För att exemplifiera:
Detta funkar, med g++ helloworld.cpp -lboost_thread
Kod: Markera allt
#include <iostream>
#include <boost/thread/thread.hpp>
void hello(){
std::cout <<
"Hello world, I'm a thread!" << std::endl;
}
int main(int argc, char* argv[]){
boost::thread thrd(&hello);
thrd.join();
//STOPPAR JAG IN KOD HÄR (SOM INTE HAR NÅGOT MED THREADS ATT GÖRA!)
//OCH LÄGGER TILL FLER FILER TILL PROJEKTET, MED OBJEKT OCH KLASSER
//SOM JAG BEHÖVER, OCH LITE '#includes "fil.h" ' SÅ SKRIKER
//BOOST::THREADS PÅ MIG!
return 0;
}
Vad kan vara fel?? Snälla bullen hjälp mig....