Tänkte skriva ett program som måste jobba med trådar som gör lite olika grejer under win xp. Nu undrar jag om ngn har ngra tips på läsning i ämnet eller kanske tom. vet om ngt bibliotek som är bra. Ett stort plus om det även täcker in mutex, semaforer och liknande.
Ok, nu har jag tagit ner biblioteket och har lite svårt att bygga det. Använder Dev-C++ och alltså MingW för att kompilera men det verkar inte vara det lättaste att få det att funka. Som jag fattar det ska man bara köra build.bat för att få fram sin Bjam executible men då måste man väl ha MingW i sin PATH vilket jag inte har. Jag har inte heller rättigheter att ändra i min path för jag sitter inte som admin på detta systemet.
Finns det ngt sätt att säga till build.bat var MingW ligger?
Gav upp med att försöka bygga Boost. Hittade efter lite letande ett klart DevPak som verkar vara bra. http://devpaks.org/show.php?devpak=94
Nu är bara problemet att jag inte lyckas få kompileringen i Dev-C++ att funka.
Lyckas få den att hitta alla include-filer i testprogrammet men det blir ngt annat fel:
------- Start fel --------------------------
Compiler: Default compiler
Building Makefile: "C:\mina_program\projekt\Makefile.win"
Executing make...
make.exe -f "C:\mina_program\projekt\Makefile.win" all
g++.exe test1/once3.o -o "test1\thread_test1.exe" -L"C:/mina_program/Dev-Cpp/lib"
test1/once3.o(.text+0x122):once3.cpp: undefined reference to `_imp___ZN5boost9call_onceEPFvvERl'
test1/once3.o(.text+0x193):once3.cpp: undefined reference to `_imp___ZN5boost12thread_groupC1Ev'
test1/once3.o(.text+0x1e1):once3.cpp: undefined reference to `_imp___ZN5boost12thread_group13create_threadERKNS_9function0IvSaINS_13function_baseEEEE'
test1/once3.o(.text+0x257):once3.cpp: undefined reference to `_imp___ZN5boost12thread_group8join_allEv'
test1/once3.o(.text+0x29c):once3.cpp: undefined reference to `_imp___ZN5boost12thread_groupD1Ev'
test1/once3.o(.text+0x2d1):once3.cpp: undefined reference to `_imp___ZN5boost12thread_groupD1Ev'
collect2: ld returned 1 exit status
Du kan ladda hem en kompilerad version av bjam för Windows. Det gjorde jag när jag skulle installera boost (för MSVC++ dock, så jag kan inte hjälpa dig med kompilatorspecifika detaljer).
För er andra: bjam är ett program som installerar och kompilerar boost.
Hittade det själv sen. Nu har jag lyckats kompilera allt och det funkade fint. Men nu kan jag inte få ens det enklaste testprogrammet att kompilera. Först hade jag problem med headers men det löste jag genom att flytta dom till "include" mappen. Dock kvarstår att jag får en massa "undefined reference" fel när jag kompilerar. Detta måste ju bero på att kompilatorn inte hittar de bibliotek som behövs för att kompilera. Dock har jag inte löst/fattat hur man får det att funka.
Om det är ngn som kan Dev-C++ bra och har erfarenhet av Boost så kan ni ju höra av er. Övriga förslag är också välkomna.
3. Öppna ett kommandofönster och ställ dig i boost mappen. Kompilera dll:er osv genom att köra
bjam "-sTOOLS=mingw" stage
Viktigt! Detta gäller för mingw och ingen annan kompilator. Se även till att ha kompilatorn i din PATH.
Resterande är Dev-C++ specifikt
4. Kopiera hela katalogen med katalogerna med HPP-filerna (boost_1_32_0/boost) till Dev-C++ include-katalog. Nu kommer du kunna använda dom genom att skriva tex
#include <boost/threads/threads.hpp>
.
5. När du använder något från boost så skickar du bara med platsen var dll-filen ligger till länkaren. (Project Options/Parameters/Linker). Man kommer behöva kopiera dll-filerna man använder till programmappen för att kunna köra men det märker man .