2011-04-18 19 views
8

ben zaten yüklemiş boost kütüphaneleri yüklemek, ama program derleme olduğumda:Boost.Asio kurulum sorunu

#include boost/asio.hpp 

int main() 
{ 
return 0; 
} 

böyle hatalar oluşur: i yapmak zorunda ne

/tmp/ccVR3eeF.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/ccVR3eeF.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()' 
/tmp/ccVR3eeF.o: In function `boost::asio::detail::posix_tss_ptr_create(unsigned int&)': 
sda.cpp:(.text._ZN5boost4asio6detail20posix_tss_ptr_createERj[boost::asio::detail::posix_tss_ptr_create(unsigned int&)]+0x19): undefined reference to `pthread_key_create' 
/tmp/ccVR3eeF.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service>::context>::~posix_tss_ptr()': 
sda.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceEE7contextEED2Ev[boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service>::context>::~posix_tss_ptr()]+0x15): undefined reference to `pthread_key_delete' 
/tmp/ccVR3eeF.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::strand_service::strand_impl>::context>::~posix_tss_ptr()': 
sda.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEED2Ev[boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::strand_service::strand_impl>::context>::~posix_tss_ptr()]+0x15): undefined reference to `pthread_key_delete' 
collect2: ld returned 1 exit status 

? Bu kütüphaneleri nasıl kurabilirim?

cevap

7

Boost.Asio, Boost.System kitaplığını da gerektirir; linker komut satırınıza -lboost_system eklemeniz gerekir.

Programınıza özellikler ekledikçe, Boost.Thread, Boost.Date_Time ve benzeri gibi diğer Boost parçalarına da gereksinim duyabilirsiniz. Detaylar için bakınız http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/using.html.

0

Netbeans kullanıyorum, bu yüzden ek satırlarda '-lboost_system' yazdım! O bir hataydı.

Ek satırlar nesnelerden önce konur ve bundan dolayı aynı hatayı aldım. Sonra ben konsoldan çalıştırın ve ÇOK END her şey greate çalışır -lboost_system koydum öğrendim. Sonunda netbeans'te (kütüphane değil komut bölümünde) ayarlanacak doğru yeri buldum ve bu alan sonunda ekledi!

Unutmayın, yalnızca kütüphanede komutunuz varsa sayar!

g++.exe -D_WIN32_WINNT=0x0501 -D__USE_W32_SOCKETS -c -g -MMD -MP -MF async_client.o.d -o async_client.o async_client.cpp 
g++.exe -D_WIN32_WINNT=0x0501 -D__USE_W32_SOCKETS -o async_client async_client.o -lws2_32 -lboost_chrono -lboost_system -lboost_thread 

Çalışmaz: POZİSYON sayımı :) sonunda kütüphane koymak ve harika

Work :) doğrulamak unutmayın gelmez

g++.exe -D_WIN32_WINNT=0x0501 -D__USE_W32_SOCKETS -c -g -MMD -MP -MF async_client.o.d -o async_client.o async_client.cpp 
g++.exe -D_WIN32_WINNT=0x0501 -D__USE_W32_SOCKETS -lws2_32 -lboost_chrono -lboost_system -lboost_thread -o async_client async_client.o 
+0

bu bir soru var mı ??? – Michael

+1

Bu cevap okumak zor. Kendimi düzenlemek için yeterince tanıdık değilim. –