小编Bil*_*l D的帖子

Boost.Log与CMake导致未定义的引用错误

我正在尝试在我正在进行的项目中使用新的Boost.Log库.该项目是用CMake构建的.我收到链接错误声称链接器遇到了对Boost.Log的未定义引用

Linking CXX executable main
CMakeFiles/main.dir/main.cpp.o: In function `main':
main.cpp:(.text+0x30): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'
Run Code Online (Sandbox Code Playgroud)

我有一个简单的hello world测试,但没有出现这些错误.如果我链接Boost.Log库会导致它产生未定义的引用错误?

main.cpp中:

#include <boost/log/trivial.hpp>
int main(int argc, char* const argv[]) {
  BOOST_LOG_TRIVIAL(info) << "Hello World";
}
Run Code Online (Sandbox Code Playgroud)

的CMakeLists.txt:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
FIND_PACKAGE(Boost 1.54 COMPONENTS log REQUIRED)
FIND_PACKAGE(Threads)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
ADD_EXECUTABLE(main main.cpp)
TARGET_LINK_LIBRARIES(main ${Boost_LOG_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
Run Code Online (Sandbox Code Playgroud)

编辑:来自cmake和make的详细输出

cmake的:

-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:476 ] _boost_TEST_VERSIONS = 1.56.0;1.56;1.55.0;1.55;1.54.0;1.54
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:478 ] Boost_USE_MULTITHREADED = TRUE
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:480 ] Boost_USE_STATIC_LIBS = 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:482 ] Boost_USE_STATIC_RUNTIME = 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:484 ] Boost_ADDITIONAL_VERSIONS = …
Run Code Online (Sandbox Code Playgroud)

c++ boost cmake boost-log

22
推荐指数
1
解决办法
1万
查看次数

标签 统计

boost ×1

boost-log ×1

c++ ×1

cmake ×1