Я пытаюсь включить библиотеку потоков Boost в свой проект на C++. Мой файл CMake, как так:Linking Boost thread library
cmake_minimum_required(VERSION 3.6)
project(LearningC)
find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIR})
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp Student.cpp Student.h)
add_executable(LearningC ${SOURCE_FILES})
target_link_libraries(LearningC ${Boost_LIBRARIES})
Я получаю сообщение об ошибке:
Undefined symbols for architecture x86_64:
"boost::this_thread::interruption_point()", referenced from:
boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) in main.cpp.o
[More stack traces...]
Что я делаю неправильно?
Итак, вам нужно перечислить библиотеку потоков в 'find_package (Boost)' call: 'find_package (Boost COMPONENTS thread REQUIRED)'. Как [там] (http://stackoverflow.com/a/3917033/3440745). – Tsyvarev
В моем случае мне пришлось добавить 'find_package (Boost COMPONENTS thread system REQUIRED)' и 'target_link_libraries ( $ {Boost_LIBRARIES})' конечно! –
Tanasis