【问题标题】:undefined reference to `boost::system::get_posix_category()'对`boost::system::get_posix_category()'的未定义引用
【发布时间】:2010-02-17 17:55:37
【问题描述】:
g++ simple_wget.cpp -lssl -lboost_system -lpthread -lcrypto -lboost_filesystem
/tmp/cc2jNHvk.o: In function `__static_initialization_and_destruction_0(int, int)':
simple_wget.cpp:(.text+0x5eb): undefined reference to `boost::system::get_posix_category()'
simple_wget.cpp:(.text+0x5f5): undefined reference to `boost::system::get_posix_category()'
collect2: ld returned 1 exit status

我知道在 boost 1.38 中 get_posix_category() 被删除了。请帮助我,我该如何解决这个问题?

【问题讨论】:

    标签: boost linker


    【解决方案1】:

    添加 -static 听起来是个坏主意,您可以用它破坏代码的其他部分。要使用 -static,您应该使用静态编译链接库,有时不会发生这种情况。

    未定义的引用通常表示未找到 boost_system。添加 -I/path/to/boost_system.so/.dylib/.dll 和或 -L/path/to/boost_system.so/.dylib/.dll

    你应该先找到 boost_system。

    【讨论】:

      【解决方案2】:

      通过向 g++ 添加 -static 参数解决了问题。为什么它有效,所以我不知道。

      【讨论】:

        猜你喜欢
        • 2019-07-05
        • 2012-11-08
        • 2015-04-09
        • 2017-02-25
        • 2021-05-16
        • 2013-08-14
        • 2013-10-19
        • 1970-01-01
        相关资源
        最近更新 更多