Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Boost.Log linking errors under GNU/Linux

Tags:

c++

linux

boost

I would like to test the Boost.Log library. Unfortunately, I get link errors.

I use Arch Linux, and I installed Boost headers and libraries via built-in package manager pacman:

  • boost 1.54.0-3
  • boost-libs 1.54.0-2

When compiling the simple example from official site via g++ log.cpp -lboost_log -lpthread, I get the following errors:

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()'
...

I've read Why my application fails to link with Boost.Log?, but I couldn't solve the link errors. It only gives me the hint that the library where boost::log::v2s_mt_posix::trivial::logger::get() is in was linked statically. But under directory /usr/lib/ there are only dynamically linked Boost libraries with extension .so.

Maybe, someone has a clue what's going wrong here.

Thank you.

like image 767
Benedikt Avatar asked Aug 24 '13 13:08

Benedikt


1 Answers

You need to define BOOST_LOG_DYN_LINK:

g++ -DBOOST_LOG_DYN_LINK blog.cpp -lboost_log -lpthread
like image 136
Razvan Cojocaru Avatar answered Oct 20 '22 18:10

Razvan Cojocaru