Die Binärdatei-Format gibt an, dass die Eingabedatei, in diesem Fall namens Stub, eine rohe binäre Blob von Daten ist. Der Befehl, den Sie anzeigen, nimmt diesen Blob und wickelt ihn in einer Elf-Datei ein, ähnlich wie andere vom Compiler erstellte Objekte Geeignet für die Verknüpfung in ein Programm Diese Art von Trick ist auch nützlich, wenn Sie ein ROM-Programmierungstool haben, zum Beispiel, dass Elf-Daten erwartet, anstatt rohe Binärdateien. Der Blob ist in der Sektion platziert und drei Symbole aka Variablen sind für erstellt You. If Sie Link Stub-Bild o mit einem C-Programm, in der üblichen Weise, dann können Sie auf die Daten wie diese können Sie wählen, was Pointer-Typ ist angemessen. Was ist File Extension LD. by Jay Geater Chief Technology Writer. Did Jemand E-Mail Sie eine LD-Datei und Sie sind nicht sicher, wie es zu öffnen Vielleicht haben Sie eine LD-Datei auf Ihrem Computer gefunden und fragen, was es für Windows könnte Ihnen sagen, dass Sie t öffnen können, oder im schlimmsten Fall, könnten Sie Begegnen Sie eine LD-Datei verwandte Fehlermeldung. Before können Sie eine LD-Datei zu öffnen, Sie Ll müssen herausfinden, welche Art von Datei die LD-Dateierweiterung bezieht sich auf. Tip falsche LD-Datei Assoziation Fehler können ein Symptom für andere zugrunde liegende Probleme in Ihrem Windows-Betriebssystem Diese ungültige Einträge können auch produzieren assoziierte Symptome wie langsame Windows-Startups, Computer Gefriert und andere PC-Performance-Probleme Daher empfiehlt es sich dringend, dass Sie Ihre Windows-Registry auf ungültige Dateizuordnungen und andere Probleme im Zusammenhang mit einer fragmentierten Registry. LD-Dateien sind Uncommon Files in erster Linie mit Paradox Language Driver Corel. LD-Dateien zugeordnet sind auch assoziiert PC-Bibliothek Benutzeroptionen Bibliographisches Institut In Sekunden werden Sie genau lernen, welche Art von LD-Datei Sie haben, das Softwareprogramm, das mit Ihrer Datei verknüpft ist, der Herausgeber, der es erstellt hat, seinen Sicherheits-Sicherheitsstatus und eine Vielzahl anderer nützlicher Informationen. Um Ihre kostenlose Datei-Analyse zu beginnen, einfach per Drag-and-Drop Ihre LD-Datei in den gepunkteten Linien unten, oder klicken Sie auf Meine Computer und klicken Sie auf Wählen Sie Ihre Datei Ihre LD-Datei Analyse Bericht wird dann direkt unten in diesem Browser-Fenster angezeigt werden. Bitte auch scannen meine Datei für Viren. Solvusoft Microsoft Gold Certified Company. Does jeder hat eine Idee, wie man statisch kompilieren jede Ressource-Datei direkt in die ausführbare Datei oder Die geteilte Bibliotheksdatei mit GCC. For Beispiel I d mögen Bilddateien hinzufügen, die sich nie ändern und wenn sie es tun, muss ich die Datei trotzdem ersetzen und möchte nicht, dass sie im Dateisystem liegen. Wenn dies möglich ist und ich Denke, es ist, weil Visual C für Windows dies auch tun kann, wie kann ich die Dateien laden, die in der eigenen Binärdatei gespeichert sind. Ist die ausführbare Parse selbst, finden Sie die Datei und extrahieren Sie die Daten aus ihm heraus. Möglicherweise gibt es eine Option für GCC Ich habe noch nicht gesehen Mit Suchmaschinen didn t wirklich spucken die richtigen Sachen. Ich würde dies für gemeinsame Bibliotheken und normale ELF-ausführbare Dateien arbeiten. Jede Hilfe ist geschätzt. Gibt etwas wie. Für Kompatibilität mit anderen Code können Sie dann Benutze entweder fmem Offen, um ein regelmäßiges FILE-Objekt zu bekommen, oder alternativ std-Stringstream, um einen iostream std-Stringstream zu machen, ist das nicht toll, aber das kannst du natürlich nur einen Zeiger benutzen, wo du einen Iterator benutzen kannst. Wenn du das mit automake nicht vergierst Um BUILTSOURCES angemessen zu setzen. Die schöne Sache über das Tun es auf diese Weise ist. Sie erhalten Text aus, so kann es in Versionskontrolle und Patches sinnvoll sein. Es ist tragbar und gut definiert auf jeder Plattform. answered Feb 1 11 um 16 04.Update Ich habe gewachsen, um die Kontrolle John Ripley s Montage basierte Lösung bietet und jetzt verwenden eine Variante auf, dass. Ich habe objcopy GNU binutils verwendet, um die binären Daten aus einer Datei in den Datenbereich der ausführbaren zu verknüpfen. Dies gibt Ihnen eine foo - Daten o Objektdatei, die du in deine ausführbare Datei verknüpfen kannst Die C-Schnittstelle sieht so etwas aus. Sie können auch Sachen ausführen. Wenn deine Zielarchitektur besondere Einschränkungen hat, wo konstante und variable Daten gespeichert sind oder du diese Daten speichern möchtest Das Segment zu Machen Sie es in den gleichen Speicher-Typ wie Ihr Programm-Code passen, können Sie mit den objcopy-Parametern einige mehr spielen. Sie können Binärdateien in ausführbare Datei mit ld Linker einbetten Zum Beispiel, wenn Sie Datei haben, dann können Sie es in ausführbare fügen Sie das folgende hinzufügen Befehle an ld. Wenn Sie aufrufen ld thru gcc dann müssen Sie hinzufügen - Wl. Here - Format Binär sagt der Linker, dass die folgende Datei binär ist und - Format Standard schaltet zurück auf Standard-Eingabeformat das ist nützlich, wenn Sie Wird andere Eingabedateien nach. Dann können Sie Zugriff auf den Inhalt Ihrer Datei aus Code. There ist auch Symbol namens binaryfoobarsize Ich denke, es ist von Typ uintptrt aber ich didn t check it. I hatte vor kurzem die Notwendigkeit, eine Datei in eine ausführbare Datei einbetten Da ich bei der Kommandozeile mit gcc et al und nicht mit einem ausgefallenen RAD-Tool arbeite, das alles perfekt macht, ist es nicht sofort klar, wie man das macht. Ein bisschen auf der Suche nach dem Netz fand einen Hack im Wesentlichen Katze es auf das Ende des executab Le und dann entschlüsseln, wo es auf einer Reihe von Informationen basiert, die ich nicht wissen wollte, wie es sein sollte, sollte es ein besserer Weg sein. Und dort ist, es ist objcopy der Rettung objcopy konvertiert Objektdateien oder ausführbare Dateien aus einem Format zu Eines der Formate, die es versteht, ist binär, was im Grunde irgendeine Datei ist, die nicht in einem der anderen Formate ist, die es versteht. Also hast du wahrscheinlich die Idee konvertiert, die Datei zu konvertieren, die wir in eine Objektdatei einbetten wollen, dann kann es Einfach mit dem Rest unseres codes verknüpft werden. Sie sagen wir, wir haben einen Dateinamen, den wir in unsere ausführbare Datei einbetten wollen. Um diese in eine Objektdatei zu konvertieren, die wir mit unserem Programm verknüpfen können, verwenden wir einfach objcopy, um eine Datei zu produzieren. Dies sagt, ob unsere Eingabedatei im Binärformat vorliegt, dass unsere Ausgabedatei in den elf32-i386-Formatobjektdateien auf der x86 sein soll. Die Option - Binary-Architecture gibt an, ob die Ausgabedatei auf einem ausgeführt werden soll X86 Dies wird benötigt, damit ld die fi akzeptieren wird Le für die Verknüpfung mit anderen Dateien für die x86 Man würde denken, dass die Angabe des Ausgabeformats als elf32-i386 würde dies bedeuten, aber es nicht. Jetzt haben wir eine Objektdatei müssen wir nur noch hinzufügen, wenn wir den Linker laufen. Wenn Wir führen das Ergebnis, das wir für die Ausgabe gebetet haben. Natürlich habe ich noch nicht die ganze Geschichte erzählt, noch zeigst du das Haupt c Wenn objcopy die obige Konvertierung macht, fügt es einige Linkersymbole zur konvertierten Objektdatei hinzu. Nach dem Verknüpfen dieser Symbole Geben Sie den Anfang und das Ende der eingebetteten Datei an. Die Symbolnamen werden durch Voranstellen von Binär und Hinzufügen von Anfang oder Ende des Dateinamens gebildet. Wenn der Dateiname alle Zeichen enthält, die in einem Symbolnamen ungültig sind, werden sie in Unterstriche umgewandelt, zB wird datatxt If Sie erhalten ungelöste Namen bei der Verknüpfung mit diesen Symbolen, machen Sie eine Hexdump - C auf die Objektdatei und schauen Sie sich das Ende der Dump für die Namen, die objcopy wählte. Der Code, um tatsächlich die eingebettete Datei sollte nun vernünftigerweise offensichtlich. One wichtig Und su Btle Sache zu beachten ist, dass die Symbole hinzugefügt, um die Objektdatei aren t Variablen Sie don t enthalten keine Daten, sondern ihre Adresse ist ihr Wert Ich deklariere sie als Typ char, weil es praktisch für dieses Beispiel die eingebetteten Daten sind Zeichen Daten , Kannst du sie als irgendetwas deklarieren, da int, wenn die Daten ein Array von ganzen Zahlen sind, oder als struct foobart, wenn die Daten ein beliebiges Array von foo Bars sind. Wenn die eingebetteten Daten nicht einheitlich sind, dann ist char wahrscheinlich am bequemsten seine Adresse Und werfen Sie den Zeiger auf die richtige Art, wie Sie die Daten durchqueren. Erweiterte Apr 1 11 bei 20 39.Ld Format binäre Optionen. Due zu 651966 es früher nicht möglich war, DEBBUILDMAINTOPTIONS direkt verwenden CMake schweigend ignoriert CPPFLAGS während des Builds, dies macht FORTIFY Verhärtung funktioniert nicht wie erwartet, wenn Sie soeben getan haben wie oben Ld-Format binäre Optionen Prognosen im Markt Forex für Januar 10 LD - r - o src o - z noexecstack - format binary Dies funktioniert nicht mit GNU-Gold wie es doesn T Unterstützung th Ist Befehlszeilenoption Dies kann entweder durch dpkg-buildflags oder eines der Pakete erfolgen, die von der Hardening-Wrapper-Quelle des Hardening-Wrappers bereitgestellt werden. Härtung-Hüll-Wrapper oder Hardening-Include Zum Beispiel, um das Pie-Feature zu aktivieren und die CDBS-Pakete automatisch zu exportieren Alle dpkg-buildflags Bug 651964 wurde behoben. Machen Sie sicher, dass Sie an die FLAGS anhängen, anstatt sie zu überschreiben, zB verwenden Sie CFLAGS - Wextra anstelle von CFLAGS - Wextra Beim Erstellen von Programmen, die nicht vertrauenswürdige Datenparser, Netzwerkzuhörer usw. behandeln oder mit erhöhten Berechtigungen laufen lassen PAM, X, etc, bitte aktivieren PIE und BINDNOW in der Build-Ld-Format binäre Optionen Wie in Binary Option System 32 investieren Alles, was Sie für binäre Option Trading Guide für profitables Trading, ehrlich Es gibt ein altes Sprichwort, dass Wissen ist Macht und es Gilt auch für den Handel. Binäre Optionen bieten eine vordefinierte Auszahlung und Beschädigung Format in Der Linker ld nimmt Objektdateien, Bibliotheken und andere Binärdateien als Eingabe und Links Wenn Sie G aufrufen CC ohne die Option - c, läuft in der Regel ld als letzter Schritt LD - r - o src o - z noexecstack - format binary Dies doesn t Arbeit mit GNU-Gold, da es nicht unterstützt diese Befehlszeile Option Um PIE zu aktivieren Und BINDNOW verwenden DEBBUILDMAINTOPTIONS in Kombination mit wie oben erklärt. Forex Kasachstan Wechselkurs in Südafrika. Exchange Preise der Währung in Mazedonien. Ld Format binäre Optionen Best Selling Forex Bücher zum Verkauf Alles, was Sie für binäre Option Trading Guide für profitables Trading, ehrlich gibt es Ist ein altes Sprichwort, dass Wissen Macht ist und es gilt auch für den Handel Binäre Optionen bieten eine vorgeordnete Auszahlung und Beschädigung Format in Quicken Cash Manager Vs Home Business LD - r - o src o - z noexecstack - format binary Dies doesn t Arbeit mit GNU-Gold, da es diese Befehlszeile nicht unterstützt. overwrites die FLAGS, so Ergänzungen zu den Flaggen müssen nach der Include-Verwendung auftreten CFLAGS - Wextra statt CFLAGS - Wextra Beim Erstellen von Programmen, die nicht vertrauenswürdige Daten parsen behandeln Rs, Netzwerk-Zuhörer, etc., oder mit erhöhten Privilegien PAM, X, etc, bitte aktivieren PIE und BINDNOW in den Build Ld-Format binäre Optionen Binary Option Brokers Make Money Helper Die alle Option ermöglicht PIE und BINDNOW und zukünftige Härtung Flags Jede Härtung Feature Kann deaktiviert und deaktiviert werden in der DEBBUILDMAINTOPTIONS Umgebungsvariable s Härtungswert mit dem und - Modifier Ld Format Binäroptionen Kompilieren eines CC Programm Compiler Optionen Compiler Optionen Aufgeführte Compiler Optionen Aufgeführt Alphabetisch MD, MT, LD Verwenden Sie Laufzeitbibliothek MD, MT Kernel Erstellen Kernel-Modus Binary Z7, Zi, ZI Debug-Informationen Format. Several Compile-Zeit-Optionen unten können verwendet werden, um zu helfen, verhärten eine resultierende Binär gegen Speicher Korruption Angriffe oder zusätzliche Warnmeldungen während der Kompilierungen Ld-Format binäre Optionen Binäre Optionen Trading System Striker9 Review Von Optometry Cnr Rolling Stock Handel. Die GNU Linker ld ist dazu gedacht, eine breite Palette von Situationen zu decken, und als comp So gut wie möglich mit anderen Linkern Als Ergebnis haben Sie viele Möglichkeiten, um sein Verhalten zu kontrollieren. Hier ist eine Zusammenfassung der Optionen, die Sie auf der ld-Befehlszeile verwenden können. Diese Fülle von Befehlszeilenoptionen mag einschüchternd erscheinen, aber in der Praxis Einige von ihnen werden in einem bestimmten Kontext verwendet. Zum Beispiel ist eine häufige Verwendung von ld, um Standard-Unix-Objektdateien auf einem standardisierten, unterstützten Unix-System zu verknüpfen. Auf solch einem System verknüpfen Sie eine Datei hallo o. This sagt ld, um eine Datei zu erzeugen Ausgabe als Ergebnis der Verknüpfung der Datei lib crt0 o mit hallo o und der Bibliothek libc a, die aus den Standard-Suchverzeichnissen kommen wird Siehe die Diskussion der Option - l unten. Die Befehlszeilenoptionen zu ld können in jedem beliebigen angegeben werden Reihenfolge, und kann wiederholt werden Wiederholen die meisten Optionen mit einem anderen Argument wird entweder keine weitere Wirkung haben oder überschreiben vorherige Vorkommnisse die weiter links auf der Kommandozeile dieser Option. Die Ausnahmen - die sinnvollerweise mehr als verwendet werden kann Einmal - ar E - A - b oder sein Synonym-Format, - defsym - L - l - R - u und - oder sein Synonym --Start-Gruppe. Die Liste der zu verknüpfenden Objektdateien, die als objfile dargestellt werden, kann folgen, Oder mit Kommandozeilenoptionen gemischt werden, außer dass ein objfile-Argument nicht zwischen einer Option und seinem Argument platziert werden kann. Normalerweise wird der Linker mit mindestens einer Objektdatei aufgerufen, aber Sie können andere Formen von binären Eingabedateien mit - L - R und die Skript-Befehlssprache Wenn keine Binär-Eingabedateien angegeben sind, erzeugt der Linker keine Ausgabe und gibt die Nachricht keine Eingabedateien aus. Wenn der Linker das Format einer Objektdatei nicht erkennen kann, wird davon ausgegangen Dass es ein Linker-Skript ist Ein Skript, das auf diese Weise spezifiziert wird, ergänzt das Haupt-Linker-Skript, das für den Link verwendet wird, entweder das Standard-Linker-Skript oder das, das mit der Verwendung von - T angegeben wird. Diese Funktion ermöglicht es dem Linker, eine Datei zu verknüpfen, die ein Objekt zu sein scheint Oder ein Archiv, sondern definiert eigentlich nur einige Symbolwerte oder verwendet INPUT oder GRUPPE zum Laden von anderen Objekten Siehe Abschnitt Befehlssprache. Für Optionen, deren Namen ein einziger Buchstabe sind, müssen die Optionsargumente entweder dem Optionsschreiben folgen, ohne den Whitespace zu intervenieren oder als separate Argumente unmittelbar nach der Option, die sie benötigt, gegeben werden. Für Optionen, deren Namen sind Mehrere Buchstaben, entweder ein Bindestrich oder zwei können dem Optionsnamen vorangestellt werden, zB - oformat und - oformat sind äquivalente Argumente für mehrere Buchstaben-Optionen müssen entweder vom Optionsnamen durch ein Gleichheitszeichen getrennt sein oder sofort als separate Argumente angegeben werden Nach der Option, die sie benötigt, zB --oformat srec und --oformat srec sind gleichbedeutend. Einzigartige Abkürzungen der Namen von mehrfachen Buchstaben werden akzeptiert.-b Eingabeformat ld kann so konfiguriert werden, dass es mehr als eine Art von Objekt unterstützt File Wenn Ihr ld auf diese Weise konfiguriert ist, können Sie die Option - b verwenden, um das Binärformat für Eingabeobjektdateien anzugeben, die dieser Option auf der Befehlszeile folgen. Auch wenn ld i S konfiguriert, um alternative Objektformate zu unterstützen, müssen Sie dies normalerweise nicht angeben, da ld so konfiguriert werden soll, dass es als Standard-Eingabeformat erwartet wird, ist das üblichste Format auf jedem Maschineneingabeformat ein Textstring, der Name eines bestimmten Formats Unterstützt von den BFD-Bibliotheken Sie können die verfügbaren Binärformate mit objdump - i-Format-Eingabeformat auflisten, hat denselben Effekt wie der Skriptbefehl TARGET Siehe Abschnitt BFD Sie können diese Option verwenden, wenn Sie Dateien mit einem ungewöhnlichen verknüpfen Binärformat Sie können auch - b verwenden, um Formate explizit zu wechseln, wenn Sie Objektdateien unterschiedlicher Formate verknüpfen, indem Sie - b Eingabeformat vor jeder Gruppe von Objektdateien in einem bestimmten Format enthalten. Das Standardformat wird aus der Umgebungsvariable GNUTARGET genommen. Sie können auch Definieren Sie das Eingabeformat aus einem Skript mit dem Befehl TARGET siehe Abschnitt Optionsbefehle - Bstatic Verknüpfen Sie nicht mit freigegebenen Bibliotheken Dies ist nur auf Plattformen sinnvoll, für die gemeinsam genutzte Bibliotheken bereitgestellt werden Orted - Bdynamic Link gegen dynamische Bibliotheken Dies ist nur sinnvoll auf Plattformen, für die freigegebene Bibliotheken unterstützt werden Diese Option ist normalerweise die Standardeinstellung auf solchen Plattformen - Bsymbolic Beim Erstellen einer freigegebenen Bibliothek binden Sie Verweise auf globale Symbole auf die Definition innerhalb der freigegebenen Bibliothek, wenn Any Normalerweise ist es möglich, dass ein Programm mit einer freigegebenen Bibliothek verknüpft ist, um die Definition innerhalb der freigegebenen Bibliothek zu überschreiben. Diese Option ist nur auf ELF-Plattformen sinnvoll, die gemeinsam genutzte Bibliotheken unterstützen - c MRI-Befehlsdatei Für die Kompatibilität mit Linkern, die von MRI produziert werden, akzeptiert ld Skript Dateien, die in einer alternativen, eingeschränkten Befehlssprache geschrieben sind, beschrieben im Abschnitt MRI Compatible Script Files Einführung von MRI-Skriptdateien mit der Option - c Verwenden Sie die Option - T, um Linkerskripts auszuführen, die in der allgemeinen LD-Skriptsprache geschrieben sind Wenn MRI-cmdfile nicht funktioniert Existiere, ld sucht es in den Verzeichnissen, die durch irgendwelche - L-Optionen - d - dc - dp angegeben werden. Diese drei Optionen sind gleichwertige Mehrfachformulare Werden für die Kompatibilität mit anderen Linkern unterstützt. Sie weisen Platz für gemeinsame Symbole auf, auch wenn eine umsetzbare Ausgabedatei mit - r angegeben ist. Der Skriptbefehl FORCECOMMONALLOCATION hat die gleiche Wirkung Siehe Abschnitt Optionsbefehle - defsym symbol expression Erstellen Sie ein globales Symbol in der Ausgabedatei mit Die absolute Adresse, die durch den Ausdruck gegeben wird Sie können diese Option so oft wie nötig verwenden, um mehrere Symbole in der Befehlszeile zu definieren. Eine begrenzte Form der Arithmetik wird für den Ausdruck in diesem Kontext unterstützt. Sie können eine hexadezimale Konstante oder den Namen eines vorhandenen Symbols angeben , Oder verwenden Sie und - Hinzufügen oder Subtrahieren von hexadezimalen Konstanten oder Symbolen Wenn Sie mehr aufwändige Ausdrücke benötigen, sollten Sie die Linker-Befehlssprache aus einem Skript verwenden. Siehe Abschnitt Zuordnung Definieren von Symbolen Hinweis Es sollte kein Leerraum zwischen Symbol das Gleichheitszeichen und Ausdruck - Embedded-relocs Diese Option ist nur sinnvoll bei der Verknüpfung von MIPS eingebettetem PIC-Code, der von dem - membedded-pic generiert wird Option zum GNU-Compiler und Assembler Es veranlasst den Linker, eine Tabelle zu erstellen, die zur Laufzeit verwendet werden kann, um alle Daten zu verlagern, die statisch auf Zeigerwerte initialisiert wurden. Siehe den Code in testsuite ld-empic für Details - e Eintrag Benutzung als explizit verwenden Symbol für den Beginn der Ausführung Ihres Programms anstatt des Standardeintragspunkts Siehe Abschnitt Der Entry Point für eine Diskussion von Vorgaben und andere Möglichkeiten zur Angabe des Einstiegspunktes - F - F-Format Ignoriert Einige ältere Linker nutzten diese Option während eines Kompilierungs-Toolchains zur Angabe Objekt-Dateiformat für Input - und Output-Objektdateien Die Mechanismen ld verwenden zu diesem Zweck die - b - oder - format-Optionen für Eingabedateien, - oformat-Option oder den TARGET-Befehl in Linkerskripten für Ausgabedateien, die GNUTARGET-Umgebungsvariable ist flexibler , Aber ld akzeptiert die Option - F für die Kompatibilität mit Skripten, die geschrieben wurden, um das alte Linker-Format-Eingabeformat aufzurufen. Synonym für - b Eingabeformat - g Ignoriert Für Kompatibilität vorgesehen Mit anderen Werkzeugen - G-Wert - G-Wert Setzen Sie die maximale Größe der zu optimierenden Objekte mit dem GP-Register auf Größe unter MIPS ECOFF Ignoriert für andere Objektdateiformate - help Drucken Sie eine Zusammenfassung der Befehlszeilenoptionen auf der Standardausgabe und Exit - i Führen Sie einen inkrementellen Link wie die Option - r - l ar Archiv Archivdatei hinzufügen, um die Liste der zu verknüpfenden Dateien zu verknüpfen Diese Option kann beliebig oft verwendet werden. Ld sucht ihre Pfadliste für das Auftreten von lib ar a für jeden Archiv spezifiziert - L searchdir - L searchdir Hinzufügen Pfad searchdir zur Liste der Pfade, die ld sucht nach Archivbibliotheken und ld-Steuerskripts Sie können diese Option beliebig oft verwenden Die Verzeichnisse werden in der Reihenfolge durchsucht, in der sie auf dem angegeben sind Befehlszeile Verzeichnisse, die auf der Befehlszeile angegeben sind, werden vor den Standardverzeichnissen durchsucht Alle - L-Optionen gelten für alle Optionen - l, unabhängig von der Reihenfolge, in der die Optionen angezeigt werden. Die Pfade können auch in einem Verknüpfungsskript mit dem SEARCHD angegeben werden IR-Befehlsverzeichnisse, die auf diese Weise angegeben sind, werden an dem Punkt gesucht, an dem das Linkerskript in der Befehlszeile angezeigt wird - M Drucken an die Standardausgabe eine Verknüpfungskarte - Diagnoseinformationen darüber, wo Symbole durch ld abgebildet werden, und Informationen über die globale gemeinsame Speicherzuweisung - Map mapfile Drucken in die Datei mapfile eine Verknüpfungskarte - Diagnoseinformationen darüber, wo Symbole durch ld abgebildet werden und Informationen über die globale gemeinsame Speicherzuweisung - m Emulation - m Emulation Emulieren Sie den Emulationslinker Sie können die verfügbaren Emulationen mit dem --verbose oder auflisten - V-Optionen Die Voreinstellung hängt davon ab, wie Ihr ld konfiguriert wurde - N Setzen Sie die Text - und Datenabschnitte, um lesbar und beschreibbar zu sein. Auch das Seitensegment nicht ausrichten Wenn das Ausgabeformat Unix-Magic-Nummern unterstützt, markieren Sie die Ausgabe als OMAGIC - n Setzen Sie das Textsegment nur zu lesen, und markieren Sie die Ausgabe als NMAGIC, wenn möglich - noinhibit-exec Behalten Sie die ausführbare Ausgabedatei, wenn es noch verwendbar ist Normalerweise wird der Linker nicht produc E eine Ausgabedatei, wenn es während des Verbindungsprozesses auf Fehler wechselt, ohne dass eine Ausgabedatei ausgegeben wird, wenn sie irgendeinen Fehler ausgibt - kein Hold-Speicher ld normalerweise für die Geschwindigkeit über den Speicherverbrauch optimiert, indem die Symboltabellen der Eingabedateien im Speicher zwischengespeichert werden Option ld, um stattdessen für die Speicherauslastung zu optimieren, indem man die Symboltabellen nach Bedarf neu ausliest. Dies kann erforderlich sein, wenn ld aus dem Speicherplatz herauskommt, während eine große ausführbare Datei verknüpft wird. - Ausgabe verwenden Sie die Ausgabe als den Namen für das Programm, das von ld erzeugt wird, wenn diese Option Wird nicht spezifiziert, der Name wird standardmäßig verwendet Der Skriptbefehl OUTPUT kann auch den Ausgabedatei-Name angeben. - formatiges Ausgabeformat ld kann so konfiguriert werden, dass es mehr als eine Art von Objektdatei unterstützt Wenn Ihr ld auf diese Weise konfiguriert ist, können Sie es verwenden Die Option - oformat, um das Binärformat für die Ausgabedokumentdatei anzugeben Sogar wenn ld für die Unterstützung alternativer Objektformate konfiguriert ist, müssen Sie dies normalerweise nicht angeben, da ld so konfiguriert werden soll, dass es als Standard-Ausgabeformat Das üblichste Format auf jedem Maschinenausgabeformat ist ein Textstring, der Name eines bestimmten Formats, das von den BFD-Bibliotheken unterstützt wird. Sie können die verfügbaren Binärformate mit objdump - i auflisten. Der Skriptbefehl OUTPUTFORMAT kann auch das Ausgabeformat angeben , Aber diese Option überschreibt es Siehe Abschnitt BFD - R Dateiname Lesen Sie Symbolnamen und ihre Adressen aus Dateiname, aber verlagern Sie sie nicht oder legen Sie sie in die Ausgabe Hiermit können Sie Ihre Ausgabedatei symbolisch auf absolute Speicherorte verweisen, die in anderen Programmen definiert sind Eine Option mit maschinenabhängigen Effekten Auf einigen Plattformen führt die Option - relax globale Optimierungen durch, die möglich werden, wenn der Linker die Adressierung im Programm auflöst, wie zum Beispiel entspannende Adressmodi und die Synthetisierung neuer Anweisungen in der Ausgabeobjektdatei - retain-symbols-file Dateiname Behalten Sie nur die Symbole, die in der Datei aufgeführt sind Dateiname Verwerfung alle anderen Dateinamen ist einfach eine flache Datei, mit einem Symbol Namen pro Zeile Dies Option ist besonders nützlich in Umgebungen, in denen eine große globale Symboltabelle allmählich akkumuliert wird, um Laufzeitspeicher zu erhalten - Erhalt-Symbole-Datei verweigert nicht undefinierte Symbole oder Symbole, die für Verlagerungen benötigt werden. Sie können nur einmal die Option - symbole-Datei angeben In der Kommandozeile Es überschreibt - s und - S - r Generieren Sie verlagerbare Ausgabe - dh generieren Sie eine Ausgabedatei, die wiederum als Eingabe in ld dienen kann. Dies wird oft als partielle Verknüpfung bezeichnet Als Nebenwirkung in Umgebungen, die Standard-Unix-Magie unterstützen Zahlen, diese Option setzt auch die Zelle der Ausgabedatei auf OMAGIC Wenn diese Option nicht angegeben ist, wird eine absolute Datei erzeugt Wenn Sie C-Programme verknüpfen, wird diese Option nicht auf Verweise auf Konstruktoren aufgelöst, um dies zu tun. Verwenden Sie diese Option Gleiches Ding wie - i - S Weglassen Sie die Debugger-Symbolinformationen, aber nicht alle Symbole aus der Ausgabedatei - s Weglassen Sie alle Symbolinformationen aus der Ausgabedatei - shared Erstellen einer freigegebenen Bibliothek Dies wird derzeit nur bei ELF und SunOS unterstützt Latforms Bei SunOS wird der Linker automatisch eine freigegebene Bibliothek erstellen, wenn die Option - e nicht verwendet wird und es im undefined Symbole im Link - sort-common gibt. Normalerweise, wenn ld die globalen gemeinsamen Symbole in die entsprechenden Ausgabeabschnitte platziert, sortiert sie sie Nach Größe Zuerst kommen alle ein Byte Symbole, dann alle zwei Bytes, dann alle vier Bytes, und dann alles andere Dies ist zu verhindern, dass Lücken zwischen Symbolen aufgrund von Ausrichtungsbeschränkungen Diese Option deaktiviert diese Sortierung-Split-by-Reloc-Count Versucht Um zusätzliche Abschnitte in der Ausgabedatei zu erstellen, so dass kein einzelner Ausgabeabschnitt in der Datei mehr enthält als Zählerverlagerungen Dies ist nützlich, wenn es darum geht, riesige Umsetzbare zum Herunterladen in bestimmte Echtzeitkern mit dem COFF-Objektdateiformat zu erzeugen, da COFF nicht mehr als 65535 Umzüge darstellen kann In einem einzigen Abschnitt Beachten Sie, dass dies nicht mit Objektdateiformaten arbeiten kann, die keine beliebigen Abschnitte unterstützen. Der Linker wird keine einzelnen Eingabeabschnitte für rot aufteilen Ist also, wenn ein einzelner eingabeteil mehr enthält als zählerverlagerungen, wird ein ausgabeabschnitt enthalten, dass viele verlagerungen - split-by-file Ähnlich wie - split-by-reloc, aber erstellt einen neuen Ausgabeabschnitt für jede Eingabedatei - Stats Berechnen und anzeigen Statistiken über den Betrieb des Linkers, wie zB Ausführungszeit und Speicherverbrauch - Tbss org - Tdata org - Ttext org Verwenden Sie org als Startadresse für - bzw. - die bss-Daten oder das Textsegment der Ausgabedatei org muss sein Eine einzelne hexadezimale Ganzzahl für die Kompatibilität mit anderen Linkern, können Sie die führenden 0x in der Regel mit hexadezimalen Werten verknüpft - T Befehlsdatei - T Befehlsleiste lesen Link-Befehle aus der Datei Befehlsdatei Diese Befehle ersetzen ld s Standard-Link-Skript anstatt Hinzufügen, so Befehlsseite Muss alles Notwendige angeben, um das Zielformat zu beschreiben. Siehe Abschnitt Befehlssprache Wenn keine Befehlsdatei existiert, sucht ld in den Verzeichnissen, die von den vorangehenden Optionen - L-Optionen Multiple - T angegeben wurden Optionen akkumulieren - t Drucken Sie die Namen der Eingabedateien als ld verarbeitet sie - traditional-format Für einige Ziele ist die Ausgabe von ld in gewisser Weise von der Ausgabe eines vorhandenen Linkers unterschiedlich. Dieser Schalter fordert ld auf, das traditionelle Format stattdessen zu verwenden Beispiel, auf SunOS, ld kombiniert doppelte Einträge in der Symbol-String-Tabelle Dies kann die Größe einer Ausgabedatei mit vollständigen Debugging-Informationen um über 30 Prozent reduzieren. Leider kann das SunOS dbx-Programm das resultierende Programm nicht lesen. Gdb hat keine Schwierigkeiten Das - traditionelle - format-Schalter sagt ld, um nicht doppelte Einträge zu kombinieren - u Symbol Force-Symbol, das in der Ausgabedatei als undefiniertes Symbol eingegeben werden soll. Dies kann beispielsweise die Verknüpfung von zusätzlichen Modulen aus Standardbibliotheken auslösen - man kann mit verschiedenen Optionsargumenten wiederholt werden Um zusätzliche undefinierte Symbole einzugeben - Ur Für irgendetwas anderes als C-Programme ist diese Option gleichbedeutend mit - r es erzeugt verlagerbare Ausgabe - dh eine Ausgabedatei, die wiederum s kann Erlösen als Eingabe in ld Bei der Verknüpfung von C-Programmen, - Ur löst Referenzen auf Konstruktoren, im Gegensatz zu - r Es funktioniert nicht zu verwenden - Ur auf Dateien, die selbst verknüpft wurden mit - Ur, sobald die Konstruktortabelle gebaut wurde, kann es nicht hinzugefügt werden Zu verwenden - Ur nur für den letzten Teillink und - r für die anderen --verbose Zeigt die Versionsnummer für ld an und listet die Linker-Emulationen auf. Zeigt an, welche Eingabedateien können und können nicht geöffnet werden - v - V Zeigt die Versionsnummer an Ld Die Option - V listet auch die unterstützten Emulationen auf. Version zeigt die Versionsnummer für ld und exit - warn-common an Warnung, wenn ein gemeinsames Symbol mit einem anderen gemeinsamen Symbol oder mit einer Symboldefinition kombiniert ist Unix-Linker erlauben diese etwas schlampige Praxis, aber Linker Auf einige andere Betriebssysteme nicht Diese Option ermöglicht es Ihnen, potenzielle Probleme aus der Kombination von globalen Symbolen zu finden. Leider verwenden einige C-Bibliotheken diese Praxis, so können Sie einige Warnungen über Symbole in den Bibliotheken sowie in Ihrem Profi erhalten Gramm Es gibt drei Arten von globalen Symbolen, die hier durch C-Beispiele dargestellt werden. Eine Definition, die in den initialisierten Datenabschnitt der Ausgabedatei extern int i ein undefinierte Referenz, die keinen Platz verteilt, gibt, muss entweder eine Definition oder Ein gemeinsames Symbol für die Variable irgendwo int i Ein gemeinsames Symbol Wenn es nur ein oder mehrere gemeinsame Symbole für eine Variable gibt, geht es in den nicht initialisierten Datenbereich der Ausgabedatei Der Linker fügt mehrere gemeinsame Symbole für die gleiche Variable in ein einzelnes Symbol ein Wenn sie von verschiedenen Größen sind, wählt es die größte Größe Der Linker verwandelt ein gemeinsames Symbol in eine Deklaration, wenn es eine Definition der gleichen Variable gibt. Die - warn-common Option kann fünf Arten von Warnungen erzeugen Jede Warnung besteht aus einem Paar von Zeilen der erste beschreibt das Symbol, das gerade angetroffen wird, und das zweite beschreibt das vorherige Symbol, das mit dem gleichen Namen angetroffen wird Ein oder beide der beiden Symbole sind ein gemeinsames Symbol Eine Referenz, da es bereits eine Definition für das Symbol gibt. Ein gemeinsames Symbol in eine Referenz umwandeln, da eine spätere Definition für das Symbol angetroffen wird. Dies ist die gleiche wie im vorherigen Fall, außer dass die Symbole in einer anderen Reihenfolge angetroffen werden. Zusammenführen eines gemeinsamen Symbols mit einem vorherigen gleich großen Symbol. Mischen eines gemeinsamen Symbols mit einem vorherigen größeren gemeinsamen Symbol. Mischen eines gemeinsamen Symbols mit einem vorherigen kleineren gemeinsamen Symbol Dies ist das gleiche wie im vorherigen Fall, außer dass die Symbole angetroffen werden Eine andere order.-warn-constructors Warnen, wenn irgendwelche globalen Konstruktoren verwendet werden. Dies ist nur für einige Objektdateiformate nützlich Für Formate wie COFF oder ELF kann der Linker die Verwendung von globalen Konstruktoren nicht erkennen - warn-once Nur einmal warnen Jedes undefinierte Symbol, anstatt einmal pro Modul, das darauf verweist Für jedes Archiv, das auf der Kommandozeile erwähnt wird, enthalten Sie jede Objektdatei im Archiv im Link, anstatt das Archiv für die requi zu durchsuchen Rote Objektdateien Dies wird normalerweise verwendet, um eine Archivdatei in eine freigegebene Bibliothek zu verwandeln und jedes Objekt zu zwingen, in die resultierende gemeinsame Bibliothek aufgenommen zu werden - X Alle temporären lokalen Symbole löschen Für die meisten Ziele sind dies alle lokalen Symbole, deren Namen mit L - X Alle lokalen Symbole löschen - y Symbol Drucken Sie den Namen jeder verknüpften Datei, in der das Symbol angezeigt wird Diese Option kann beliebig oft gegeben werden Auf vielen Systemen ist es notwendig, einen Unterstrich vorzugeben. Diese Option ist nützlich, wenn Sie ein undefiniertes Symbol in Ihrem haben Link aber nicht wissen, woher die Referenz kommt - Archive - --Start-Gruppen-Archive --end-Gruppe Die Archive sollen eine Liste von Archivdateien sein. Sie können entweder explizite Dateinamen oder - l Optionen Die angegebenen Archive sind Wiederholt wiederholt, bis keine neuen undefinierten Referenzen erstellt werden Normalerweise wird ein Archiv nur einmal in der Reihenfolge durchsucht, in der es auf der Kommandozeile angegeben ist. Wenn ein Symbol in diesem Archiv benötigt wird, um ein undefiniertes Symbol zu beheben, das auf b steht Y ein Objekt in einem Archiv, das später auf der Kommandozeile erscheint, wäre der Linker nicht in der Lage, diese Referenz zu lösen. Durch die Gruppierung der Archive werden sie alle wiederholt durchsucht, bis alle möglichen Referenzen aufgelöst sind. Mit dieser Option hat man eine signifikante Performance-Kosten Am besten, um es nur zu verwenden, wenn es unvermeidliche kreisförmige Referenzen zwischen zwei oder mehr Archiven gibt. Gehe zum ersten vorherigen nächsten letzten Abschnitt, Inhaltsverzeichnis.
Comments
Post a Comment