GCC verfügt über alle Arten von Optionen, um zu steuern, wie es funktioniert. Hier sind ein paar relevante:
-nostdlib
Um die Verknüpfung mit den Standardbibliotheken und dem Startcode auszulassen-nostdinc
Um die Header -Dateien in den Standardstandorten zu unterlassen.-ffreestanding
Für eine freistehende Umgebung (z. B. einen Kernel) zusammenstellen
Sie müssen auch nicht GCC zum Verknüpfen verwenden. Sie können den Linker direkt aufrufen, ihn mit Ihrer eigenen Linker -Karte, Ihrem Start -Object -Code und allem anderen zur Verfügung stellen, was Sie benötigen.
Der Linux -Kernelbau scheint aus willkürlichen Gründen nicht zu verwenden -ffreestanding
Es steuert jedoch die Verknüpfungsstufe und stellt sicher, dass der Kernel ohne einen Benutzerspace -Code verknüpft wird.