C++11 CMake FindThreads与现代C++;?
CMake()的源代码声明了关于“FindThreads”功能的以下内容: 如果线程是使用 标准库中的C++11 CMake FindThreads与现代C++;?,c++11,cmake,C++11,Cmake,CMake()的源代码声明了关于“FindThreads”功能的以下内容: 如果线程是使用 标准库中的std::thread 但如果我遵循这个建议(在我的Mint18 x86_64系统、gcc8、CMake 3.13.2上),我会得到: 如果该模块已被执行(尽我所能使用其他SO文章和之前给出的建议): 。。。结果是一样的 找到的THREADS是true,CMAKE\u USE\u PTHREADS\u INIT是1,但我在编译下没有-pthread,或者在链接期间没有-lpthread。我检查了
std::thread
但如果我遵循这个建议(在我的Mint18 x86_64系统、gcc8、CMake 3.13.2上),我会得到:
如果该模块已被执行(尽我所能使用其他SO文章和之前给出的建议):
。。。结果是一样的
找到的THREADS
是true
,CMAKE\u USE\u PTHREADS\u INIT
是1
,但我在编译下没有-pthread
,或者在链接期间没有-lpthread
。我检查了模块中提到的许多其他变量,但我尝试的所有变量都没有设置
有没有正确的方法可以做到这一点?还是我应该用普通的旗帜继续我的生活
find_package( Threads )
target_link_libraries( ${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT} )
另请参见是否在代码中直接使用
pthread.*
API?否。我使用的是std::thread。
set (THREADS_PREFER_PTHREAD_FLAG ON)
find_package (Threads REQUIRED)
add_executable(my_app main.cpp)
target_link_libraries (my_app Threads::Threads)
find_package( Threads )
target_link_libraries( ${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT} )