2011-04-20 37 views
2

我已經安裝了所有Boost庫,但在編譯g++ sda.cpp -lboost_system -lboost_date_time -lboost_regex -lboost_thread -lboost_serialization編譯程序與Boost.Asio的庫

#include <boost/asio.hpp> 

int main() 
{ 
    return 0; 
} 

我得到幾個錯誤時,和編譯失敗。 我使用最新的Ubuntu 10.10。 編譯器說:

 
/tmp/cc6bld0N.o: In function `__static_initialization_and_destruction_0(int, int)': 
sda.cpp:(.text+0x52): undefined reference to `boost::system::generic_category()' 
sda.cpp:(.text+0x5e): undefined reference to `boost::system::generic_category()' 
sda.cpp:(.text+0x6a): undefined reference to `boost::system::system_category()' 
/tmp/cc6bld0N.o: In function `boost::asio::error::get_system_category()': 
sda.cpp:(.text._ZN5boost4asio5error19get_system_categoryEv[boost::asio::error::get_system_category()]+0x5): undefined reference to `boost::system::system_category()' 
collect2: ld returned 1 exit status

什麼問題?

+0

當你說「我已經安裝了所有boost庫」,你的意思是你安裝了它的編譯版本,還是從源代碼構建並安裝了它們? – yasouser 2011-04-20 14:24:19

回答

1

不太可能是您的問題,但您不應該鏈接到boost_date_timeboost_regexboost_serializationboost_thread

samm$ cat asio.cc 
#include <boost/asio.hpp> 

int main() 
{ 
    return 0; 
} 
samm$ g++ asio.cc -I /opt/local/include/ -L/opt/local/lib -lboost_system -Wl,-rpath,/opt/local/lib 
samm$ 
0

IIRC,Ubuntu的有* -dev包進行開發。你確定你已經安裝libboost-dev而不是libboost嗎?