2012-05-12 9 views
9

Provo a compilare un piccolo file .cpp con la libreria boost sul server remoto su Debian usando g ++ 4.4. Io uso Netbeans per questo scopo. La mia macchina a casa è su Windows 7. Dopo aver risolto alcuni problemi con il collegamento successivo codiceRiferimento indefinito a boost :: timer :: auto_cpu_timer

#include <boost/timer/timer.hpp> 
#include <iostream> 
#include <string> 

int main() 
{ 
    boost::timer::auto_cpu_timer ac; //line 5 
    return 0; //line 6 
} 

produce 2 errori:
linea 5: undefined reference to boost::timer::auto_cpu_timer::auto_cpu_timer(short)'
linea 6: undefined reference to boost::timer::auto_cpu_timer::~auto_cpu_timer()'

Stesso risultato se io uso intestazione boost/thread.hpp ma per costruttore/distruttore di thread. Ma ad esempio boost/shared_ptr compila senza alcun problema. comando di compilazione Risultato in neatbeans è

g++ -m64 -I/usr/include/boost/boost_1_49_0 -lboost_system -o dist/Debug/GNU-Linux-x86/test build/Debug/GNU-Linux-x86/main.o 
-L/usr/include/boost/boost_1_49_0/stage/lib -Wl,-rpath /usr/include/boost/boost_1_49_0/stage/lib build/Debug/GNU-Linux-x86/main.o 

quello che ho perso?

risposta

15

È necessario eseguire il collegamento con boost_timer. Aggiungi -lboost_timer alla riga di comando gcc. Consultare la documentazione di Netbeans su come aggiungere librerie a un progetto.

+1

Grazie, mi sono davvero perso. –

+0

potresti anche aver bisogno di -lboost_system (vedi https://stackoverflow.com/q/41980440/) – ricab

Problemi correlati