CMake ne peut pas trouver de fichiers d'inclusion
J'ai un projet avec la mise en page suivante:
/build
/source
+--- CMakeLists.txt
|
+--- /bin
| +--CMakefiles.txt
| +--main.cpp
|
+--- /jsoncpp
| +--- /json
| | +--json.h
| | +--json-forwards.h
| |
| +--jsoncpp.cpp
| +--CMakeLists.txt
|
+--- /jsonreader
+-- jsonreader.cpp
+-- jsonreader.h
+-- CMakeLists.txt
/Source/CMakeLists.txt j'ai cette ligne de code;
include_directories(jsoncpp jsonreader)
mais ensuite de l'exécution " cmake -G "MSYS Makefiles" ../source' dans le répertoire de compilation génère un Makefile, puis en exécutant "faire" génère l'erreur suivante:
Scanning dependencies of target updater
[ 33%] Building CXX object bin/CMakeFiles/updater.dir/main.cpp.obj
In file included from k:/own-projects/updater-Project/withJsonCpp/source/bin/main.cpp:2:0:
../source/jsonreader/jsonreader.h:2:18: fatal error: json.h: No such file
or directory
compilation terminated.
make[2]: *** [bin/CMakeFiles/updater.dir/main.cpp.obj] Error 1
make[1]: *** [bin/CMakeFiles/updater.dir/all] Error 2
make: *** [all] Error 2
ce que je fais mal et comment puis-je résoudre ce problème?
source d'informationauteur Amani
Vous devez vous connecter pour publier un commentaire.
Il y avait deux problèmes. D'abord vous avez besoin pour ajouter le chemin d'accès
jsoncpp/json
à vos répertoires. Cependant qui pointait vers un deuxième problème. Depuis votre exécutables pas dans le dossier source vous faut préfixer${CMAKE_SOURCE_DIR}
à votre chemins de sorte que leinclude_directories()
devrait ressembler à la suivante:J'ai ajouté des guillemets juste de sortir de l'habitude. Je le fais la plupart de mon temps avec mes
CMakeLists.txt
donc il n'y a pas de problèmes avec les espaces dans les chemins.Amani,
Il me semble que si vous incluez "json.h" sans son chemin d'accès relatif. Vous pouvez l'inclure comme ceci:
OU, dans votre CMakeLists.txt fichier, ajouter le json répertoire de l'inclure des répertoires: