我想测试 Boost.Log 库。不幸的是,我收到链接错误。
我使用 Arch Linux,并通过内置的包管理器 pacman
安装了 Boost 头文件和库:
- boost 1.54.0-3
- boost-libs 1.54.0-2
编译来自 official site 的简单示例时通过 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()'
...
我读过 Why my application fails to link with 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
关于c++ - Boost.Log GNU/Linux 下的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18419003/