CMake 编译thread

问 题

Linux环境下,使用C++多线程,即std::thread时,通过cmake编译报错,对‘pthread_create’未定义的引用

原 因

Linux环境下,C++的std::thread库底层是对pthread的封装

解决方法

CMakeLists.txt中添加

find_package(Threads) //引入外部依赖包
add_executable(Network main.cpp)
target_link_libraries (${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT}) //链接 Thread 库

target_link_libraries (${PROJECT_NAME} pthread) 

注:使用target_link_libraries链接库时,需要在add_executable之后

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容