0
votes

Définition non définie dans la CPPCheck Analyser à partir de la commande CUMAKE générée

J'ai un projet que je vérifie avec CPPCheck 1.90, mais je souhaite que peu de temps définissent, car il faut beaucoup de temps pour vérifier avec toutes les définitions.

Exemple: Tests.CPP CODE> p> xxx pré>

Lorsque je travaille avec fichier sans projet - il n'y a pas de problème: p> xxx pré>

i nonset définit b - et cppcheck Ne pas vérifier le chemin de compilation avec B. Mais comment le faire avec le fichier généré à partir de CMAKE Project? P>

CMakeLists.txt
cmake_minimum_required(VERSION 3.6)

project(tests)

set(SRC
    tests.cpp
)

set(NAME test)
add_executable(${NAME} ${SRC})


3 commentaires

Avez-vous essayé de définir le drapeau C ++? CMAKELIST Fichier SET (CUKE_CXX_FLAGS "-D * YOUR_FLAGS *") , Postez votre fichier CmAkelists peut être utile.


Ceci est un problème avec CPPCheck et vous le plus probablement] devrait signaler un bug avec eux.


@jouepol, merci! Mais mieux de définir non défini!


3 Réponses :


0
votes

Une décision possible est la modification du fichier CMAKELIST (désétat défini): xxx

et sortie est: xxx

il n'y a pas " B "Vérification du chemin. Mais si existe une solution sans changer de cmAkelists - ce serait mieux.


0 commentaires

1
votes

Vous avez une option pour éditer le fichier CmAkelistes une seule fois et passer des arguments au besoin, pour y parvenir, vous devez

dans le fichier CmAkelists Ajouter:

SET (CUKE_CXX_FLAGS "$ {CUKE_CXX_FLAGS} * HARD_CODED_FLAGS *")

ligne de commande:

Lorsque vous appelez cmake à partir de la ligne de commande, vous ajoutez CUKE_CXX_FLAGS = -UB = ​​1 (ou tout autre drapeau "fort> cppcheck ), cela concaténera < Code> -UB = ​​1 sur le HARD_CODED_FLAGS .


0 commentaires

1
votes

Un autre moyen est d'avoir CUKE exécuter cppcheck lui-même. Ceci peut être fait en définissant cmake_cxx_cppcheck (voir le Documentation ). Vous pouvez soit définir cmake_cxx_cppCheck dans votre cmakelists.txt ou vous pouvez la définir sur la ligne de commande qui invoque cmake .

Ceci a des inconvénients (par exemple, chaque fichier source est vérifié individuellement, la vérification de fichier croisement ne fonctionne pas).

Mais il y a plusieurs avantages:

  • Pas besoin d'appeler CPPCheck séparément.
  • Si vous définissez CUKE_CXX_CPPCHeck dans votre CMAKELIST.TXT , vous pouvez également ajouter CPPCheck Options de ligne de commande pour contrôler ce qu'il fait. Dans votre cas, vous pouvez ajouter -UB .
  • Cela aide à encapsuler toutes les connaissances de la manière de créer et de vérifier votre projet dans un seul fichier ( cmakelists.txt ).

    Je suivez généralement un motif quelque chose comme ceci dans mon CMAKELIST.txt : xxx

    alors vous pouvez faire une analyse de code par faire cmake -denable_code_analysis = sur .


0 commentaires