Я пытаюсь получить простой пример boost.log, работающий в Linux с использованием GCC 4.4.5, CMake 2.8.2 и Boost 1.53.0.Boost log, GCC 4.4 и CMake
Компиляция журнала буферизации и форсирования успешно завершена, но я продолжаю возникать проблемы при связывании моей тестовой программы с boost.log.
Я использую следующий CMakeLists.txt файл:
cmake_minimum_required(VERSION 2.8)
project(QuantibBoostLogTest)
# Include boost headers
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
find_package(Threads)
find_package(Boost 1.53.0 COMPONENTS thread date_time filesystem system log log_setup REQUIRED)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
link_libraries(${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES})
else(Boost_FOUND)
message(FATAL_ERROR "Cannot build Quantib Boost Log test without Boost. Please set Boost_DIR.")
endif(Boost_FOUND)
add_executable(quantibBoostLogTest boost_log_test.cxx)
install(TARGETS quantibBoostLogTest DESTINATION .)
CMake делает обнаружение библиотеки подталкивания правильно, но я все еще получаю ошибки компоновщика, в основном в виде:
core.cpp:(.text+0x1b0e): undefined reference to `boost::detail::get_tss_data(void const*)'
я ссылку библиотеки потоков. Кто-нибудь знает, как это решить?
Вы получаете неопределенные ссылки на библиотеку PThreads? –
GCC 4.4 действительно старый (текущий GCC - 4.8). Вы рассматривали обновление? –
Насколько я вижу, у меня нет ошибок, связанных с pthreads. Они были решены путем добавления части FIND (Threads) файла CMake. –