Ich bin mit g ++ - Compilern nicht besonders vertraut, insbesondere mit den Optionen, z. B. -s, -g und -O.
Erstens, kann ich fragen, wann diese Optionen wirksam werden? Während der Kompilierungs- oder Verbindungsphase? Normalerweise gebe ich alle Optionen in beiden Phasen an.
Zweitens, gibt es die Optionen -g1, -g2, -g3? Ich weiß -g fügt Debugging-Informationen in der ausführbaren Datei hinzu. Wie unterscheiden sich andere?
Drittens, was macht -s? Arbeiten -s, -g und -O3 zusammen? Mein Ziel ist es, die ausführbare Datei 1) schnell laufen zu lassen und 2) möglichst klein zu halten. Was schlägst du vor?
Sie sollten sich nicht auf die Optionen konzentrieren, sondern darauf, was Sie erreichen möchten. Meine allgemeinen Kommentare zu dem, was Sie erreichen möchten:
Benutze immer das Handbuch (Zugriff durch Eingabe einer Shell "man g ++" oder durch Suche im Internet "man g ++") und suche nach den Optionen, wenn du neugierig bist, was es tut. Wenn Sie eine höhere Frage haben, können Sie fragen (zum Beispiel wird der Unterschied zwischen -g1 und -g3 im Handbuch erklärt)
Als Vorschlag: Verwenden Sie -O3. Wenn Sie das Programm ständig entwickeln und GDB als Debugger verwenden, verwenden Sie: -ggdb -g3.
Edit: In Bezug auf wann sie angewendet werden: Normalerweise machst du dir keine Sorgen über Phase es ist, senden Sie einfach die Optionen und die g ++ kümmert sich um sie. Wenn Sie etwas genaueres wollen, dann können Sie mehr überprüfen.
Tags und Links compilation performance g++ options