问题:GNU/Linux下Boost.Log链接错误

我想测试 Boost.Log 库。不幸的是,我收到链接错误。

我使用 Arch Linux,并通过内置的包管理器pacman安装了 Boost 头文件和库:

  • 提升 1.54.0-3

  • 升压库 1.54.0-2

从官方网站通过g++ log.cpp -lboost_log -lpthread编译简单示例时,出现以下错误:

log.cpp:(.text+0x42): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'
log.cpp:(.text+0x9b): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'
...

我已阅读为什么我的应用程序无法与 Boost.Log 链接?,但我无法解决链接错误。它只给我提示boost::log::v2s_mt_posix::trivial::logger::get()所在的库是静态链接的。但是在目录/usr/lib/下,只有扩展名为.so的动态链接的 Boost 库。

也许,有人知道这里出了什么问题。

谢谢你。

解答

您需要定义BOOST_LOG_DYN_LINK:

g++ -DBOOST_LOG_DYN_LINK blog.cpp -lboost_log -lpthread
Logo

更多推荐