2016-06-01 25 views
1

Dies ist das Zitat aus ARM ARM® Cortex ™ -A-Serie, Version: 4.0, Programmierhandbuch, Seite 9-1.In Bezug auf MMU und Standard-Linker-Datei von GCC für statisch verknüpfte Programme

"Die MMU ermöglicht es, Aufgaben oder Anwendungen so zu schreiben, dass sie keine Kenntnisse über die physische Speicherzuordnung des Systems oder über andere Programme haben, die möglicherweise gleichzeitig ausgeführt werden."

Meine Frage bezieht sich auf Linux-Programme, die wir über gcc kompilieren. Ich möchte nicht für dynamische Verknüpfung gehen, also bitte beachten Sie, dass das Programm statisch verknüpft ist. Ich war ein Embedded-System-Programmierer und meistens haben wir eine einzelne Linker-Datei für das ganze Projekt. basierend auf Linker-Datei-Code/Daten wird in RAM platziert. Aber im Falle von Linux, wenn ich eine c-Anwendung kompiliere und verlinke, benutze gcc (statisch verlinkt), stelle ich keine Linker-Datei zur Verfügung.

Frage ist, wie entscheidet Linux, wo ich mein Programm im Speicher platzieren/laden soll. Hat es eine Standard-Linker-Datei für alle Anwendungen?

+0

Es scheint, als ob Sie keine Betriebssysteme für Ihre Projekte verwenden, oder? –

Antwort

0

Sicher, GNU LD hat Standard-Linker-Skript. Sie können es sogar sehen. Gerade liefern

-Wl, - ausführliche

zu Ihrer GCC-Befehlszeile.