バイナリファイルを、リンカでリンクできるようにできるツール
objcopy
そこで登場するのが GNU binutils に付属する objcopy コマンドです。objcopy を使うと任意のファイルをリンク可能なオブジェクトファイルに変換できます。
たとえば、 foo.jpg を i386 用の ELF32 形式のオブジェクトファイル foo.o に変換するには次のように実行します。
% objcopy -I binary -O elf32-i386 -B i386 foo.jpg foo.o
foo.o をリンクした C のプログラムからは foo.jpg のデータは以下の変数名を用いて参照できます。
extern char _binary_foo_jpg_start[];
extern char _binary_foo_jpg_end[];
extern char _binary_foo_jpg
ということ感じらしいです。
objcopy
そこで登場するのが GNU binutils に付属する objcopy コマンドです。objcopy を使うと任意のファイルをリンク可能なオブジェクトファイルに変換できます。
たとえば、 foo.jpg を i386 用の ELF32 形式のオブジェクトファイル foo.o に変換するには次のように実行します。
% objcopy -I binary -O elf32-i386 -B i386 foo.jpg foo.o
foo.o をリンクした C のプログラムからは foo.jpg のデータは以下の変数名を用いて参照できます。
extern char _binary_foo_jpg_start[];
extern char _binary_foo_jpg_end[];
extern char _binary_foo_jpg
ということ感じらしいです。
※コメント投稿者のブログIDはブログ作成者のみに通知されます