升压 C++示例代码 - 静态编译错误

发布于 2024-11-02 19:38:11 字数 5970 浏览 1 评论 0原文

我是使用 Boost C++ 库的新手,我正在尝试编译此处给出的正则表达式示例代码(http://www.boost.org/doc/libs/1_46_1/more/getting_started/unix-variants.html #link-your-program-to-a-boost-library)

这是我得到的输出:

     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

不幸的是,我的知识有限意味着我不太明白这一切意味着什么。有人可以解释一下吗?多谢 :) -科技

I'm new to using the Boost C++ Libraries, and I'm trying to compile the Regex example code given here (http://www.boost.org/doc/libs/1_46_1/more/getting_started/unix-variants.html#link-your-program-to-a-boost-library)

This is the output I'm getting:

     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

Unfortunately, my limited knowledge means I don't quite understand what this all means. Could someone shed some light on it please? Much obliged :)
-tech

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尬尬 2024-11-09 19:38:11
g++ -I /boost/include/ src/main.cpp -o main -L/boost/lib/ -lboost_regex -lpthread -static
                                                                        ^^^^^^^^^
g++ -I /boost/include/ src/main.cpp -o main -L/boost/lib/ -lboost_regex -lpthread -static
                                                                        ^^^^^^^^^
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文