x86_64 プラットフォームで "gcc -S" -> "as" -> "ld" によって簡略化された C ソース ファイルをコンパイルしようとしています。
プロセスはエラーなしで終了しましたが、実行すると「No such file or direcotry」というエラー メッセージが表示されます。
ctest.c
int main()
{
return 0;
}
> gcc -S ctest.c
> as -o ctest.o ctest.s
> ld -o ctest /usr/lib64/crt1.o /usr/lib64/crti.o ctest.o -lc /usr/lib64/crtn.o
> ./ctest
bash: ./ctest: No such file or directory
> uname -a
Linux mkb3 2.6.27.48-0.3-default #1 SMP 2010-09-20 11:03:26 -0400 x86_64 x86_64 x86_64 GNU/Linux
また、いくつかのGoogleの結果に記載されているように、動的リンクを追加しようとしました.
> ld -o ctest -dynamic-linker /lib64/ld-linux.so.2 /usr/lib64/crt1.o /usr/lib64/crti.o ctest.o -lc /usr/lib64/crtn.o
しかし、エラーは残りました。
コメントや提案をお待ちしております。
編集: Linux ボックスに /lib64/ld-linux.so.2 が存在しないというミスを犯しました。/lib64/ld-2.9.so を使うべきでした。指定された存在しないライブラリ ファイルで ld がエラーを報告しないことを知りませんでした。