Je sais qu'il y a quelque chose comme find_package(Threads)
mais cela ne semble pas faire de différence (du moins en soi). Pour l'instant, j'utilise SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-pthread")
, mais cela ne me semble pas être une solution correcte.
Réponses
Trop de publicités?
Alex Che
Points
822
Le module Threads dans les dernières versions (>= 3.1) de CMake génère la cible importée Threads::Threads . Lier votre cible à Threads::Threads ajoute tous les indicateurs de compilation et de liaison nécessaires. Cela peut être fait comme ceci :
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED)
add_executable(test test.cpp)
target_link_libraries(test Threads::Threads)
L'utilisation de la cible importée est fortement recommandée pour le nouveau code, selon la documentation CMake
user3701085
Points
97