2020/09/21
はじめに
cmake
でpthread
リンクエラーを解消する方法
/usr/bin/ld: CMakeFiles/project.dir/main.cpp.o: undefined reference to symbol 'pthread_join@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
解決方法
g++を使っている場合,コンパイルオプションに-pthread
を追加すれば直るはず。
CMakeLists.txt
を使っている場合は、以下を追記する。
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(project PUBLIC "-pthread")
参考
https://stackoverflow.com/questions/1620918cmake-and-libpthread