c++ - instalar - Boost.Log vincula errores en GNU/Linux
instalar boost linux (2)
Me gustaría probar la biblioteca Boost.Log. Desafortunadamente, recibo errores de enlace.
Utilizo Arch Linux, e instalé los encabezados y las bibliotecas de Boost a través del gestor de paquetes integrado pacman
:
- impulso 1.54.0-3
- boost-libs 1.54.0-2
Al compilar el ejemplo simple del sitio oficial a través de g++ log.cpp -lboost_log -lpthread
, recibo los siguientes errores:
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()''
...
He leído ¿Por qué mi aplicación no puede vincularse con Boost.Log? , pero no pude resolver los errores de enlace. Solo me da la pista de que la biblioteca donde boost::log::v2s_mt_posix::trivial::logger::get()
está enlazada estáticamente. Pero en el directorio /usr/lib/
solo hay bibliotecas Boost vinculadas dinámicamente con la extensión .so
.
Tal vez, alguien tiene una idea de lo que está mal aquí.
Gracias.
Si está usando cmake
entonces:
find_package(Boost REQUIRED COMPONENTS system log)
target_link_libraries(credential ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY})
y use:
#define BOOST_LOG_DYN_LINK 1
Debe definir BOOST_LOG_DYN_LINK :
g++ -DBOOST_LOG_DYN_LINK blog.cpp -lboost_log -lpthread