Frage

Ich habe ein Projekt gebaut mit Scons Und ich versuche das zu benutzen Clang Static Analyzer Um den Code zu analysieren. Im Laufen jedoch

scan-build scons

Scons scheinen die Einstellungen zu ignorieren, die von eingeführt wurden, scan-build. Wie kann ich das zum Laufen bringen?

War es hilfreich?

Lösung

Der Weg scan-build Arbeiten werden verschiedene Umgebungsvariablen eingerichtet, die normalerweise von Build -Systemen verwendet werden (wie z. make) um zu kontrollieren, wie der Build geschieht. Einige davon sind:

  • CC - Name des Programms, der als C -Compiler verwendet werden soll
  • CXX - Name des Programms als C ++ - Compiler verwendet
  • CCC_* - Verschiedene Umgebungsvariablen, die das Verhalten von Clangs statischer Analysator steuern

Scons räumen normalerweise die Umgebung vor dem Ausführen eines Builds (dies ist eine Funktion). Um die oben genannten Umgebungsvariablen wirksam zu machen, tun Sie so etwas in SConstruct:

env = Environment()
env["CC"] = os.getenv("CC") or env["CC"]
env["CXX"] = os.getenv("CXX") or env["CXX"]
env["ENV"].update(x for x in os.environ.items() if x[0].startswith("CCC_"))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top