GCC を使用した実行可能ファイルへのリソースの埋め込み
GCC を使用して C/C アプリケーションを開発する場合、外部バイナリ データを実行可能ファイルに直接埋め込むと便利な場合があります。実行可能ファイル。これにより、個別のリソース ファイルの必要性がなくなり、配布が簡素化されます。
GCC の埋め込み機能
GCC は、リソースの埋め込みに対して 2 つの主なアプローチを提供します。
使用中ld:
を使用するbin2c/bin2h ユーティリティ:
の例ld
ld を使用した詳細な例を次に示します。
#include <stdio.h> extern char _binary_foo_bar_start[]; extern char _binary_foo_bar_end[]; int main(void) { printf("Address of start: %p\n", &_binary_foo_bar_start); printf("Address of end: %p\n", &_binary_foo_bar_end); for (char* p = _binary_foo_bar_start; p != _binary_foo_bar_end; ++p) { putchar(*p); } return 0; }
この例では、foo.bar という名前のファイルがオブジェクト ファイル (foo.bar.o) に変換されます。
ld -r -b binary -o foo.bar.o foo.bar
を使用すると、リンカーは実行可能ファイルをビルドするときに foo.bar.o をインクルードし、シンボル _binary_foo_bar_start および _binary_foo_bar_end によるバイナリ データ。
サイズの決定
埋め込みリソースのサイズを決定するには、次を使用します。
unsigned int iSize = (unsigned int)(&_binary_foo_bar_end - &_binary_foo_bar_start);
以上がGCC 実行可能ファイルにリソースを埋め込むにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。