GCC 4.4.5、CMake 2.8.2、および Boost 1.53.0 を使用して Linux で実行されている単純な boost.log の例を取得しようとしています。
ブーストとブースト ログのコンパイルは成功しましたが、テスト プログラムを 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*)'
スレッド ライブラリをリンクします。これを解決する方法を知っている人はいますか?