问题描述
Linux平台开发Clion项目中使用<thread>头文件中thread、async函数
#include <thread>
#include <future>
int main(){
...
async(launch::async,[RST](){RST->update();});
...
}
编译报错
undefined reference to 'pthread_create'
原因是没有找到多线程的库pthread(pthread是C语言的多线程API,不是Linux系统默认的库,而thread线程库是c++11对pthread库进行了封装,因此#include <thread>也会报错)
问题解决
在CMakeLists.txt添加以下语句
find_package(Threads REQUIRED)
target_link_libraries(xxx Threads::Threads)
'xxx'部分填入项目文件夹名称