次のコマンドを使用して、Linux on Ubuntu 5.4 (GNAT 3.4) 用の Ada プログラムをコンパイルしました。
gnatmake -O3 myprogram -bargs -static
その後、Ubuntu マシンでプログラムを実行すると、正常に動作します。しかし、別のマシン (Linux Web サーバー) で試してみると、次のエラー メッセージが表示されますstrace
。
execve("./myprogram", ["./myprogram"], [/* 15 vars */]) = 0
brk(0) = 0x811e000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76f8000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76f7000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb76f7680, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
どういう意味ですか?2 つのファイル (ld.so.nohwcap と ld.so.preload) が不足しているため、プログラムを実行できないということは正しく理解できていますか? このエラーを回避するにはどうすればよいですか? コンパイル中にこれらのファイルをプログラムに含める可能性はありますか?