我試圖在x86_64平臺上用「gcc -S」 - >「as」 - >「ld」編譯一個簡化的C源文件。x86_64「gcc -S」 - > as - > ld - >執行失敗
該過程完成時沒有錯誤,但在執行時顯示「沒有這樣的文件或目錄」錯誤消息。
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
我也嘗試添加動態鏈接,如某些谷歌搜索結果所述。
> 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
但是錯誤依然存在。
意見和建議表示讚賞。
編輯:我犯了一個錯誤/lib64/ld-linux.so.2不存在於我的Linux機器中。我應該使用/lib64/ld-2.9.so。不知道ld不會報告指定的不存在的庫文件的錯誤。
感謝您的回覆,-dynamic-linker現在適合我。請參閱我的問題中的編輯。 – ning