C++11 CMake FindThreads与现代C++;?

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。我检查了

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
。我检查了模块中提到的许多其他变量,但我尝试的所有变量都没有设置

有没有正确的方法可以做到这一点?还是我应该用普通的旗帜继续我的生活

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} )