![C 程序的编译和链接](https://linux22.com/image/850939/C%20%E7%A8%8B%E5%BA%8F%E7%9A%84%E7%BC%96%E8%AF%91%E5%92%8C%E9%93%BE%E6%8E%A5.png)
我正在学习编译器链接器和加载器,并试图了解我的 ubuntu 12.04 机器上链接器和加载器的工作原理
我写了两个简单的“.c”文件如下
测试文件
#include<stdio.h>
int main(int argc, char **argv)
{
printf("%d",test_fun(10));
}
测试2.c
#include<stdio.h>
int test_fun(int a)
{
return a*10;
}
然后我执行了以下命令
cc -c test.c
cc -c test2.c
ld test.o test2.o -o a.out -lc --entry main
现在,我的当前目录中生成了一个 a.out 文件。我在输入时可以看到该文件ls
,但是当我尝试以如下方式运行该文件时
./a.out
我收到错误
bash: ./a.out: No such file or directory
我做错了什么?请帮帮我?