GCC-Compileroptionen: Welche Gruppe von aktivierten Optionen ist korrekt?

8

Ich versuche herauszufinden, welche Compiler-Optionen für GCC aktiviert sind (4.7.3, Macports-Installation unter Mac OS X 10.6.8). Ich kenne die folgenden Methoden:

  1. Verwenden Sie die Option -Q mit einer einfachen Eingabedatei, wie von GCC 4.3.3 Compiler-Optionen aktiviert :

    %Vor%
  2. Verwenden Sie die Option -Q --help = x (für Werte von x siehe GCC-Dokumentation ) zB:

    %Vor%
  3. Um aktiviert zu sehen definiert:

    %Vor%

Wenn ich jedoch Methode 1 und 2 mit den gleichen Optimierungsoptionen ausführe, erhalte ich zwei verschiedene Sätze von aktivierten / deaktivierten Optionen.

%Vor%

während

%Vor%

Betrachten von Optionen -Falgen-Funktionen, -Falgen-Sprünge, -Falgen-Etiketten und -Falgen-Schleifen Methode 2 behauptet, dass sie alle aktiviert sind, während Methode 1 sagt, nur -falsche-Etiketten ist aktiviert. Außerdem sind die Optionen -fdce und -fdse gemäß Methode 2, nicht jedoch gemäß Methode 1 aktiviert.

Frage : Welcher Methode sollte ich vertrauen?

Randnotiz : Die Liste der Methode 2 ist unvollständig, da die Optionen gruppiert sind und nur die mit der Option --help = angeforderten Gruppen aufgelistet sind. Um alle Optionen in Methode 2 zu sehen, führen Sie:

%Vor%     
zan 14.08.2013, 23:46
quelle

1 Antwort

1

Aus der GCC-Dokumentation:

  

- help = {class | [^] qualifier} [, ...] Drucken (auf der Standardausgabe) eine Beschreibung der vom Compiler verstandenen Kommandozeilenoptionen   das passt in alle angegebenen Klassen und Qualifier.

während

  

Wenn die Option -Q in der Befehlszeile vor dem --help = erscheint   Option, dann wird der beschreibende Text von --help = geändert.   Anstatt die angezeigten Optionen zu beschreiben, wird eine Angabe als gegeben   ob die Option aktiviert, deaktiviert oder auf einen bestimmten Wert eingestellt ist   (unter der Annahme, dass der Compiler dies an dem Punkt weiß, an dem --help =   Option wird verwendet)

Es scheint, dass --help einfach zeigt, welche Optionen aktiviert werden können, während -Q es einem erlaubt, zu sehen, ob es tatsächlich aktiviert ist. Auch:

  

Die Ausgabe reagiert empfindlich auf die Auswirkungen der vorherigen Befehlszeile   Optionen

    
alexsh 15.08.2013 00:33
quelle

Tags und Links