Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von GCC Ressourcen nahtlos in ausführbare Dateien einbetten?

Wie kann ich mithilfe von GCC Ressourcen nahtlos in ausführbare Dateien einbetten?

Linda Hamilton
Freigeben: 2024-12-18 16:32:25
Original
789 Leute haben es durchsucht

How Can I Seamlessly Embed Resources into Executables Using GCC?

Ressourcen nahtlos in ausführbare Dateien mit GCC einbetten

Um externe Binärdaten mühelos in von GCC kompilierte C/C-Anwendungen einzubetten, sollten Sie die folgenden Methoden in Betracht ziehen:

Verwendung der Objekterstellung von ld Funktion:

ld, der Linker, bietet die Möglichkeit, jede Datei in ein Objekt zu konvertieren. Um eine Datei einzubetten, führen Sie den Befehl aus:

ld -r -b binary -o binary.o foo.bar  # then link in binary.o
Nach dem Login kopieren

Dadurch wird eine Objektdatei („binary.o“) mit Symbolen erstellt, z als:

  • _binary_foo_bar_start
  • _binary_foo_bar_end
  • _binary_foo_bar_size

Zum Beispiel, um auf den Inhalt einer einfachen Textdatei zuzugreifen, die damit eingebettet wurde Methode:

#include <stdio.h>

extern char _binary_foo_bar_start[];
extern char _binary_foo_bar_end[];

int main(void)
{
    // Print the contents of the embedded resource
    for (char* p = _binary_foo_bar_start; p != _binary_foo_bar_end; ++p) {
        putchar( *p);
    }

    return 0;
}
Nach dem Login kopieren

Einsatz eines Bin2c/Bin2h-Dienstprogramms:

Diese Dienstprogramme konvertieren Dateien in ein Array von Bytes. Integrieren Sie das resultierende Array in Ihren Code.

Beispiel mit ld-Objekterstellung:

So integrieren Sie eine Ressource in eine Objektdatei:

ld -r -b binary -o foo.bar.o foo.bar
Nach dem Login kopieren

Die resultierende Objektdatei enthält diese Symbole:

  • _binary_foo_bar_start
  • _binary_foo_bar_end
  • _binary_foo_bar_size

So greifen Sie auf die eingebettete Ressource in Ihrem Code zu:

unsigned int iSize = (unsigned int)(&amp;_binary_foo_bar_end - &amp;_binary_foo_bar_start);
Nach dem Login kopieren

Dies bietet eine alternative Methode zur Bestimmung die Ressourcengröße.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von GCC Ressourcen nahtlos in ausführbare Dateien einbetten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage