GCC を使用した実行可能ファイルおよび共有ライブラリへのリソースの埋め込み
問題ステートメント:
方法GCC を使用してリソース ファイルを実行可能ファイルおよび共有ライブラリ ファイルに静的に埋め込むコンパイラ?
解決策:
GCC を使用してリソース ファイルをバイナリ プログラムに埋め込むには、次の手順に従います:
オブジェクト ファイルを作成します: GNU binutils の objcopy ユーティリティを使用します。パッケージを使用して、リソース ファイルのバイナリ データを含むオブジェクト ファイルを作成します。たとえば、バイナリ ファイル foo-data.bin をオブジェクト ファイルに変換するには:
objcopy -B i386 -I binary -O elf32-i386 foo-data.bin foo-data.o
追加の考慮事項:
使用例:
次のコード スニペットは、埋め込みリソース データの使用方法を示しています。
extern uint8_t foo_data[] asm("_binary_foo_data_bin_start"); extern uint8_t foo_data_size[] asm("_binary_foo_data_bin_size"); extern uint8_t foo_data_end[] asm("_binary_foo_data_bin_end"); size_t foo_size = (size_t)((void *)foo_data_size); void *foo_copy = malloc(foo_size); assert(foo_copy); memcpy(foo_copy, foo_data, foo_size);
このコードは、埋め込まれた foo-data リソースを読み取り、そのサイズを決定し、プログラム内でコピーを作成します。記憶。
以上がGCC を使用して実行可能ファイルや共有ライブラリにリソースを埋め込む方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。