Ich fing an, an mehreren C-Projekten zu arbeiten, die mit bauen gcc
. Ich glaube, diese Wahl wurde aus mehreren Gründen getroffen:
- Musste sehr früh für Arm Cross-Compilieren (glaube ich).
- Leistung ist die erste und wichtigste Spezifikation.
gcc
war und ist die einfache erste Wahl.
Ich habe keinen Grund, diese Wahl anzufechten, und ich bin sowieso nicht in der Lage, dies zu tun.
Die Codebasis eines einzelnen Projekts ist relativ klein. Jedes Projekt wird mit einem relativ sauberen Makefile erstellt (das derzeit aktualisiert wird), gcc -Wall -Wextra
beschwert sich bei weitem nicht und es werden nur minimale Tests durchgeführt. Es wird keine automatisierte statische Analyse oder Code-Formatierung durchgeführt, und der Code ist syntaktisch nicht konsistent, obwohl er sehr gut lesbar ist und sich durchdacht anfühlt.
Ich möchte nicht jede Codezeile auf einmal neu formatieren, ich beabsichtige, das zu tun, was irgendwo um diese Antwort herum beschrieben wurde (zumal der Kontext wirklich nicht so schlecht ist): Umgestaltung und hauptsächlich Neuformatierung so weit wie möglich, wenn es um ein Thema geht, Aber immer noch Themen ohne Absichten im Codestil. Leider bin ich nicht in der Lage, Commits einen Codestil oder zusätzliche Überprüfungen aufzuerlegen, aber ich bin der Meinung, dass meine Kollegen der Meinung sind, dass Sie beim Ändern einer Datei die vorhandene Codekonvention respektieren sollten (obwohl mir der aktuelle Status bekannt ist des Codes geschah nicht auf magische Weise) und der Wunsch, guten Code zu schreiben.
Dies ist das erste Mal, dass ich in C mit einem solchen Geisteszustand programmiere, und ich bin sehr angetan von den verschiedenen Tools zur Codeanalyse und -formatierung clang
.
Der Kern meiner Frage lautet also: Könnte es zu Problemen führen, wenn ich beim Erstellen von clang
Hinweisen Hinweise verwende und clang
Formatierungs- und Analysewerkzeuge verwende gcc
? Beispielsweise könnten einige Warnungen von einer internen Darstellung stammen, gcc
die nicht verwendet wird, oder von Bytecode clang
, der generiert gcc
werden soll, was nicht der Fall ist .
Gibt es eine gute Möglichkeit, die gcc
Kompilierungsparameter (hauptsächlich die Zielarchitektur und die Optimierungsstufe) automatisch zu übergeben , clang
damit die Warnhinweise sinnvoll sind?
Ich werde hinzufügen, dass ich mit gcc
und seiner Fehlerberichterstattung vertraut bin . Ich bin daran interessiert, mehr (relevante) Warnungen und Fehler zu erhalten, nicht nur besser formulierte und verständlichere Warnungen. Wenn ich also zusätzlichen Hinweisen nicht vertrauen clang
kann, die aufgrund ihrer internen Darstellung erstellt werden können, weil ich gcc
am Ende des Tages damit baue , dann bin ich nicht wirklich daran interessiert.
Ich habe viel Kontext aufgenommen, also zögern Sie nicht, eine Bemerkung zu machen oder eine zugrunde liegende Frage zu beantworten, die ich nicht herausbringen konnte.