我试图在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