2011-04-19 108 views
2

我是使用Boost C++庫的新手,我試圖編譯這裏給出的Regex示例代碼(http://www.boost.org/doc/libs/ 1_46_1 /多/ getting_started/UNIX的variants.html#鏈接你的程序到一個升壓庫)Boost C++示例代碼 - 靜態編譯錯誤

這是我得到的輸出:

 make 
g++ -I /boost/include/ src/main.cpp -o main -L/boost/lib/ -lboost_regex -static 
/boost/lib//libboost_regex.a(static_mutex.o): In function `boost::scoped_static_mutex_lock::scoped_static_mutex_lock(boost::static_mutex&, bool)': 
static_mutex.cpp:(.text+0x1d): undefined reference to `pthread_mutex_lock' 
/boost/lib//libboost_regex.a(static_mutex.o): In function `boost::scoped_static_mutex_lock::~scoped_static_mutex_lock()': 
static_mutex.cpp:(.text+0x4e): undefined reference to `pthread_mutex_unlock' 
/boost/lib//libboost_regex.a(static_mutex.o): In function `boost::scoped_static_mutex_lock::lock()': 
static_mutex.cpp:(.text+0x76): undefined reference to `pthread_mutex_lock' 
/boost/lib//libboost_regex.a(static_mutex.o): In function `boost::scoped_static_mutex_lock::unlock()': 
static_mutex.cpp:(.text+0xa6): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(locale.o): In function `__gnu_cxx::__scoped_lock::~__scoped_lock()': 
(.text._ZN9__gnu_cxx13__scoped_lockD2Ev[_ZN9__gnu_cxx13__scoped_lockD5Ev]+0x18): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(locale.o): In function `std::locale::_Impl::_M_install_cache(std::locale::facet const*, unsigned int)': 
(.text._ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEj+0x4c): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(locale.o): In function `std::locale::_Impl::_M_install_cache(std::locale::facet const*, unsigned int)': 
(.text._ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEj+0x80): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(locale_init.o): In function `std::locale::locale()': 
(.text._ZNSt6localeC2Ev+0x41): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(locale_init.o): In function `std::locale::locale()': 
(.text._ZNSt6localeC2Ev+0x5d): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(locale_init.o): In function `std::locale::global(std::locale const&)': 
(.text._ZNSt6locale6globalERKS_+0x2d): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(locale_init.o): In function `std::locale::global(std::locale const&)': 
(.text._ZNSt6locale6globalERKS_+0x94): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(eh_alloc.o): In function `__cxa_allocate_exception': 
(.text.__cxa_allocate_exception+0xbc): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(eh_alloc.o): In function `__cxa_allocate_exception': 
(.text.__cxa_allocate_exception+0x11a): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(eh_alloc.o): In function `__cxa_free_exception': 
(.text.__cxa_free_exception+0x6d): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(eh_alloc.o): In function `__cxa_free_exception': 
(.text.__cxa_free_exception+0x88): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(eh_alloc.o): In function `__cxa_allocate_dependent_exception': 
(.text.__cxa_allocate_dependent_exception+0x64): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(eh_alloc.o): In function `__cxa_allocate_dependent_exception': 
(.text.__cxa_allocate_dependent_exception+0xc0): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(eh_alloc.o): In function `__cxa_free_dependent_exception': 
(.text.__cxa_free_dependent_exception+0x70): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libstdc++.a(eh_alloc.o): In function `__cxa_free_dependent_exception': 
(.text.__cxa_free_dependent_exception+0x8b): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libgcc_eh.a(unwind-dw2-fde-glibc.o): In function `__register_frame_info_bases': 
(.text+0x166e): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libgcc_eh.a(unwind-dw2-fde-glibc.o): In function `__register_frame_info_bases': 
(.text+0x1685): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libgcc_eh.a(unwind-dw2-fde-glibc.o): In function `__register_frame_info_table_bases': 
(.text+0x178a): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libgcc_eh.a(unwind-dw2-fde-glibc.o): In function `__register_frame_info_table_bases': 
(.text+0x17a1): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libgcc_eh.a(unwind-dw2-fde-glibc.o): In function `__deregister_frame_info_bases': 
(.text+0x188a): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libgcc_eh.a(unwind-dw2-fde-glibc.o): In function `__deregister_frame_info_bases': 
(.text+0x1904): undefined reference to `pthread_mutex_unlock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libgcc_eh.a(unwind-dw2-fde-glibc.o): In function `_Unwind_Find_FDE': 
(.text+0x19cb): undefined reference to `pthread_mutex_lock' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libgcc_eh.a(unwind-dw2-fde-glibc.o): In function `_Unwind_Find_FDE': 
(.text+0x1a1a): undefined reference to `pthread_mutex_unlock' 
collect2: ld returned 1 exit status 
make: *** [main] Error 1 

不幸的是,我有限知識意味着我不太明白這一切意味着什麼。請問有人可以點亮它嗎?非常感謝:) -tech

回答

3
g++ -I /boost/include/ src/main.cpp -o main -L/boost/lib/ -lboost_regex -lpthread -static 
                     ^^^^^^^^^ 
+0

哦,謝謝!我需要使用Boost庫的任何應用程序的libpthread嗎?我將不得不閱讀文檔多一點我覺得...感謝您的幫助:) – Technosites 2011-04-19 10:57:06

+0

@Technosites:一些提升部分取決於pthreads,所以這取決於你使用什麼。 – Erik 2011-04-19 10:59:56