2010-02-01 17 views
5

Cosa devo fare per includere boost :: thread nel mio progetto? Ho copiato la cartella intera filo al mio percorso di lavoro (voglio essere in grado di eseguire questo su più computer) e ottengoCome includere boost :: thread nel progetto C++?

errore irreversibile C1083: Impossibile aprire includere di file: 'boost/filo/dettaglio /platform.hpp ': No file o directory

Dalla linea #include "thread/thread.hpp"

Che cosa dà?

edit: Anche se ho solo collegamento alla cartella spinta dove installato il binario precompilato e uso #include <boost/thread/thread.hpp> ricevo

errore irreversibile LNK1104: impossibile aprire il file 'libboost_thread-vc90-MT- 1_41.lib '

+0

Avete costruito le librerie? Boost.Thread è una delle poche librerie Boost che è _not_ solo per l'intestazione. –

+0

Sei sicuro? Non ho idea, ma guardando attraverso la cartella dei thread, sono tutti .hpp .. – Chris

+1

Sì, ne sono sicuro. Leggi la guida "Guida introduttiva": http://www.boost.org/doc/libs/1_41_0/more/getting_started/index.html –

risposta

11

Sfortunatamente boost :: thread non è una libreria "header-only" - quindi è necessario averlo compilato. Ci sono fondamentalmente due modi per aggirarlo.

  1. si scarica un precompilati pacchetto di installazione da boostpro (supponendo che siete su Windows) - https://sourceforge.net/projects/boost/files/boost-binaries/
  2. si può costruire da soli - vedi http://www.boost.org/doc/libs/1_35_0/more/getting_started/index.html
+1

Ho scaricato il pacchetto di installazione preinstallato, ma vorrei includere il boost :: thread all'interno della compilazione del mio progetto (che sono sicuro lo renderà più grande, ma mi piacerebbe eseguirlo su molti computer che potrebbero non avere boost installato) – Chris

+1

@Chris, ci sono distribuzioni linkate staticamente delle librerie da boostpro ... questo significa che devi solo collegarti alla libreria e sarà inclusa nella tua compilation. In questo modo, non è necessario provare a creare autonomamente la libreria boost (ofc, supponendo che tu sia su Windows). – Polaris878

+0

@Polaris Sono attualmente su Windows, ma eseguirò questa applicazione anche su alcune macchine Linux (quindi la scelta di boost :: thread) – Chris

-1

Fatal Error C1083 è un errore di Visual C++ . Dovresti includere la cartella della libreria da boost nel tuo progetto. "C: \ Programmi \ boost \ boost_1_41 \ lib" se stai usando boostpro.

Inoltre, quando si scarica la libreria di thread con boostpro, è necessario controllarlo nell'elenco (è anche possibile scegliere il compilatore ...).

2

Dopo aver scaricato, decompresso e installato le librerie di boost nell'ambiente di Visual Studio e comunicato al progetto di Visual Studio dove risiedono le librerie Boost, non si è ancora finito. Esiste un numero di librerie nelle librerie Boost che richiedono di costruirle da soli. Boost threads è una di queste librerie.

  1. Creare il programma bjam.exe se non lo si è già fatto. Probabilmente il modo più semplice è quello di ottenere ed eseguire direttamente da BoostPro, dicendo all'installazione quale delle librerie (thread) si desidera installare - non è necessario installarle tutte.

  2. Passare alla directory C: \ Programmi \ boost_1_46_1 \ tools \ build \ v2 \ engine \ src ed eseguire build.bat dal prompt dei comandi. L'esecuzione dello script build.bat creerà bjam.exe all'interno di questa directory: C: \ Program Files \ boost_1_46_1 tools \ accumulo \ v2 \ motore \ src \ \ bin.ntx86

  3. Selezionare il bjam.exe in nel vostro Variabili d'ambiente PATH. Includere la directory C: \ Programmi \ boost_1_46_1 \ tools \ build \ v2 \ engine \ src \ bin.ntx86 come un'altra variabile d'ambiente.

  4. Al prompt dei comandi, andare alla directory C: \ Programmi \ boost_1_46_1, immettere "bjam", attendere circa 5-10 minuti durante la creazione del programma.

  5. Nel progetto di Visual Studio selezionare Proprietà di configurazione -> Linker -> Input -> Dipendenze aggiuntive e immettere libboost_thread-vc100-mt-gd-1_46_1.lib.

  6. Nel progetto di Visual Studio impostare le proprietà di configurazione del progetto -> Linker -> Generale -> Directory di inclusione aggiuntive, indicando la posizione della cartella stage/lib ad esempio C: \ Programmi \ Boost_1_46_1 \ stage \ lib.

Questo dovrebbe essere sufficiente per iniziare. Per ulteriori dettagli completi, vedere questo blog posting.

0

Errore di compilazione per "boost :: thread". Ma è stato risolto quando ho incluso la seguente intestazione.

#include <boost\thread.hpp> 
Problemi correlati