私はバイナリファイルB
をリンク時に実行可能ファイルA
に埋め込みようとしています(Linux(64ビット))。外部のグローバル変数を参照するのが悲惨に失敗する
B
ld -r -bbinary -oB.o B
と再配置可能なオブジェクトに変換され
Hi, I'm a text file in plain ASCII.
... ...単純なテキストファイルです。
...これはA.c
ある
_binary_B_start
_binary_B_end
_binary_B_size
:そのsymtab
は、3つのグローバル変数、一目瞭然であるの名前を報告します
#include <stdio.h> extern const size_t _binary_B_size; int main(int argc, char * * argv) { printf("size: %zu\n", _binary_B_size); return 0; }
... B.o
:gcc -oA A.c B.o
でコンパイルおよびリンクされています。 残念ながら、実行可能ファイルA
が_binary_B_size
にアクセスしようとするとすぐに、SIGSEGV
で突然終了します。
私は間違っていますか?