Comprendre la gestion des dépendances d'en-tête de CMake
CMake traite initialement les fichiers d'en-tête en dehors du projet répertoire en tant que ressources externes. Ce comportement peut entraîner des problèmes de suivi des dépendances dans les projets générés.
Solution : Désignation des répertoires d'inclusion
Pour inclure correctement les en-têtes, deux étapes sont nécessaires :
Ajout de l'inclusion Répertoire :
Utilisez target_include_directories pour les versions récentes de CMake (par exemple, 3.0) :
target_include_directories(test PRIVATE ${YOUR_DIRECTORY})
Pour les anciennes versions de CMake (par exemple. , 2.8.10 ou version antérieure, sans target_include_directories support):
include_directories(${YOUR_DIRECTORY})
Inclure les fichiers d'en-tête dans la liste des sources cibles :
Pour suivre les dépendances, ajoutez un en-tête fichiers à la liste source pour le target :
set(SOURCES file.cpp file2.cpp ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h) add_executable(test ${SOURCES})
Exemple : liaison d'en-têtes à plusieurs cibles
Pour partager des fichiers d'en-tête sur plusieurs cibles :
set(HEADER_FILES ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h) add_library(mylib libsrc.cpp ${HEADER_FILES}) target_include_directories(mylib PRIVATE ${YOUR_DIRECTORY}) add_executable(myexec execfile.cpp ${HEADER_FILES}) target_include_directories(myexec PRIVATE ${YOUR_DIRECTORY})
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!