在GNU/Linux下Boost.Log链接错误

Ben*_*ikt 12 c++ linux boost

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

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

  • 提升1.54.0-3
  • boost-libs 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()'
...
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

小智 14

您需要定义BOOST_LOG_DYN_LINK:

g++ -DBOOST_LOG_DYN_LINK blog.cpp -lboost_log -lpthread
Run Code Online (Sandbox Code Playgroud)