【发布时间】:2017-05-14 13:49:44
【问题描述】:
我正在尝试在我的 C++ 项目中包含 Boost 的线程库。我的 CMake 文件是这样的:
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)调用中列出“线程”库:find_package(Boost COMPONENTS thread REQUIRED)。喜欢there。 -
就我而言,我当然必须添加
find_package(Boost COMPONENTS thread system REQUIRED)和target_link_libraries(<target> ${Boost_LIBRARIES})!