Was ist die Option -ffreestanding in gcc?

Lesezeit: 1 Minute

Benutzeravatar von saplingPro
BäumchenPro

Was ist ffreestanding im gc? Was wird es verwendet ? Ich bin auf folgendes gestoßen:

gcc -ffreestanding -m32 -c kernel.c -o kernel.o

und verstehe nicht, was das genau bedeutet.

  • Siehe auch: stackoverflow.com/questions/2681304/…

    – Ciro Santilli OurBigBook.com

    29. April 2015 um 13:21 Uhr

Benutzeravatar von Dayal Rai
Tagesrai

EIN freestanding Umgebung ist eine Umgebung, in der die Standardbibliothek möglicherweise nicht vorhanden ist und der Programmstart nicht unbedingt auf “main” erfolgen muss. Die Option -ffreestanding leitet den Compiler an nicht davon ausgehen, dass Standardfunktionen ihre übliche Definition haben.

Standardmäßig fungiert GCC als Compiler für eine gehostete Implementierung und definiert __STDC_HOSTED__ als 1 und unter der Annahme, dass bei Verwendung der Namen von ISO-C-Funktionen diese die im Standard definierte Semantik haben. Verwenden Sie die Option, damit es als konforme freistehende Implementierung für eine freistehende Umgebung fungiert -ffreestanding. Es wird dann definiert __STDC_HOSTED__ auf 0 setzen und keine Annahmen über die Bedeutung von Funktionsnamen aus der Standardbibliothek treffen.

Für mehr Information, Dies Link kann helfen.

  • @Dayalrai habe ich verwendet -ffreestanding Möglichkeit mit arm-non-eabi-gcc : arm-non-eabi-gcc -g -O0 -ffreestanding ......aber ich bekomme immer noch das Hauptsymbol, wenn ich anrufe nm Befehl U main die mir Debugging-Fehler mit erzeugen gdb : Function "main" not defined. Wie kann ich vermeiden, dies zu erzeugen mainSymbol

    Benutzer2948075

    28. April 2015 um 9:01 Uhr


  • Typischerweise -ffreestanding wird zum Kompilieren von Kerneln verwendet. Außerdem wird es selten verwendet, um Anwendungen zu kompilieren, die direkt mit dem Kernel interagieren würden, ohne eine Bibliothek zu verwenden. Normale Anwendungen würden nicht verwendet werden -ffreestanding.

    – Christian Hüjer

    6. Oktober 2015 um 10:56 Uhr

  • Ich führe den Dhrystone-Benchmark auf Cortex-M7 und die Einbeziehung von -ffreestanding als Compiler-Option verursacht einen Rückgang der DMIPS/MHz-Zahl. In solchen Fällen ist es daher besser, darauf zu verzichten.

    – Nö

    25. März um 6:29 Uhr

1411840cookie-checkWas ist die Option -ffreestanding in gcc?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy