CMake ne générant pas compile_commands.json
Je suis nouveau sur CMake et je suis en train de créer le compile_commands.fichier json à utiliser avec clang, mais je vais avoir quelques difficultés à générer le fichier et je ne sais pas pourquoi. J'ai été en mesure d'utiliser cmake pour compiler le binaire person
que j'ai ci-dessous, mais après ça a été un succès et j'ai été incapable de l'obtenir à la sortie de la compilation commandes.
J'ai aussi essayé de faire de l'-DCMAKE_EXPORT_COMPILE_COMMANDS=SUR le drapeau, mais cela ne fonctionne pas non plus. Jusqu'à présent il n'y a pas eu d'erreurs, mais pas de sortie.
Voici ce que mon CMakeLists.txt fichier ressemble à ceci:
cmake_minimum_required (VERSION 2.6)
project (Tutorial)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_executable(person Person.cc Pirate.cc main.cc)
Qui du générateur et de la version de CMake utilisez-vous? J'ai eu du mal à générer de la compile_commands.fichier json à l'aide de l'XCode générateur, mais pour les Ninja et les Makefiles il fonctionne ok.
Cela a fini par être un problème avec l'utilisation d'une ancienne version de CMake. J'ai fini par installer la version la plus récente et elle a fonctionné comme prévu.
merci de poster ce dernier commentaire à votre réponse
Cela a fini par être un problème avec l'utilisation d'une ancienne version de CMake. J'ai fini par installer la version la plus récente et elle a fonctionné comme prévu.
merci de poster ce dernier commentaire à votre réponse
OriginalL'auteur Lucas | 2014-05-30
Vous devez vous connecter pour publier un commentaire.
Cela a fini par être un problème avec l'utilisation d'une ancienne version de CMake. J'ai fini par installer la version la plus récente et elle a fonctionné comme prévu.
Selon Clang docs
"Actuellement CMake (depuis 2.8.5) prend en charge la génération de la compilation de bases de données pour Unix Makefile construit (Ninja construit dans les travaux) avec l'option CMAKE_EXPORT_COMPILE_COMMANDS."
N'ai pas vérifié ce fond, mais de 2,6 n'a certainement pas de travail, mais rien >= 3.0 a semblé bien fonctionner, de sorte que la fonctionnalité a été ajoutée quelque part dans cette fourchette.
Viens de trouver la réponse exacte ici: clang.llvm.org/docs/JSONCompilationDatabase.html "Actuellement CMake (depuis 2.8.5) prend en charge la génération de la compilation de bases de données pour Unix Makefile construit (Ninja construit dans les travaux) avec l'option CMAKE_EXPORT_COMPILE_COMMANDS."
Merci pour la clarification.
OriginalL'auteur Lucas