2010-05-22 16 views
21

Realizzato un nuovo progetto, ha aggiunto main.cpp e scrisse il codice al seguente URL:errore irreversibile LNK1104: Impossibile aprire il file 'libboost_system-vc90-mt-gd-1_43.lib'

http://www.boost.org/doc/libs/1_43_0/doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp

anche , aggiunto il percorso di inclusione appropriato.

Quali sono le prospettive?!? !! Sembra un maledetto mistero creare un codice boost!

State scavando su di esso per più di 10 ore.

Qualcuno può dare una risposta diretta su come costruire la libreria boost dal codice in Windows, VC9?

risposta

18

È necessario utilizzare bjam. È responsabile della creazione delle librerie che verranno utilizzate dall'applicazione. Una volta che usi bjam, dovrai istruire il tuo progetto per includere il file lib. Puoi farlo andando nelle proprietà del progetto -> Proprietà di configurazione -> Linker -> Generale. Aggiungi la directory che ha creato il file lib in Additional Library Directories. Dovresti essere in grado di collegare correttamente dopo di ciò. Credo che this link descriva i passaggi meglio di quanto potrei provare in un post

+0

tutto quello che dovevo fare era aggiungere C: \ Boost \ x86 \ lib alle directory di libreria aggiuntive sopra menzionate – Brent

+4

in 1.5 \ stage \ lib dovrebbe essere aggiunto. –

9

Non tutte le librerie Boost sono solo intestazione, Boost.System è una di queste. Il documentation per Boost.Asio ti dice che dipende da Boost.System.

Con Visual Studio, le librerie Boost utilizzano auto-linking, il che significa che non è necessario collegarsi esplicitamente alle librerie necessarie. È tuttavia necessario disporre delle librerie necessarie nel percorso di ricerca della libreria, globalmente o per progetto.

Se non si desidera costruire autonomamente le librerie Boost, è possibile utilizzare lo installers fornito da boostpro (solo fino a Boost 1.42, sebbene al momento). Se invece vuoi crearli tu stesso, lo documentation copre bene.

16

@bogertron: Voglio abbracciarti! (:

Così, alla fine, con un vero e proprio mal di testa, sono riuscito a farlo

I passaggi esatti ho preso, in modo che altri saranno salvati dal mal di testa:.

  1. È andato a http://www.boost.org/doc/libs/1_43_0/more/getting_started/windows.html#or-build-binaries-from-source

  2. seguito la clausola di "5.3.1 Get bjam" scaricato il "eseguibile pre-costruito bjam per la propria piattaforma" a questo indirizzo:... http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941

  3. Estratto il file ZIP (la mia piattaforma è Windows).

  4. Ran "build.bat". Ha prodotto il file "bin.ntx86/bjam.exe".

  5. Copiato questo file sul mio PERCORSO ("...../boost_1_43_0 /").

  6. Da una riga di comando, eseguito "bjam.exe" e atteso per circa 4-5 minuti.

Quindi ha ricevuto questo messaggio alla console: "Le librerie Boost C++ sono state costruite con successo!"

Questo è tutto, ti dice anche dove sono inclusi i file di inclusione & lib.

0

In Visual Studio, fare clic destro sul vostro progetto, poi vai a proprietà e selezionare:

Proprietà -> Proprietà di configurazione -> Linker

Vi si aggiunge il percorso completo del vostro libreria nella scheda denominata "Directory di libreria aggiuntive".

-1

Ora con boost_1.50 la Boost.build è incluso nel file zip: controllare tools\build\v2\ o meglio di lettura: ...boost_1_50_0/more/getting_started/windows.html

0

Dalla "Boost Getting Started Indicazioni":

"5.2 o, costruire semplificato Dalla sorgente

Se si desidera creare dal sorgente con Visual C++, è possibile utilizzare una semplice procedura di compilazione descritta in questa sezione: Aprire il prompt dei comandi e modificare la directory corrente nella directory root di Boost, quindi digitare i seguenti comandi :

bootstrap . \ B2 "

Su Windows, ho aperto la riga di comando di Visual Studio dal menu di avvio. Per prima cosa digito "bootstrap" e poi ho digitato ". \ B2".

1

Ho avuto lo stesso errore e ho seguito il SourceForge. Il link ti porterà a una cartella di file zip e dll zippati per la versione di boost.È possibile scaricare e decomprimere la libreria correlata e quando viene copiata nella relativa posizione tutto andrà bene;)

Problemi correlati