中易网

linux下 为什么要生成.o文件 .o文件和.c文件还有生成的可执行文件有啥区别啊?

答案:3  悬赏:10  
解决时间 2021-01-10 23:57
  • 提问者网友:焚苦与心
  • 2021-01-10 21:08
linux下 为什么要生成.o文件 .o文件和.c文件还有生成的可执行文件有啥区别啊?
最佳答案
  • 二级知识专家网友:上分大魔王
  • 2021-01-10 22:36
.c只是简单的文本文件
.o是编译之后的二进制文件
最终生成的可执行文件,是编辑--编译--链接之后的文件.追问多谢多谢 那.o文件不能运行吧?我运行不了在红帽里边
而且我建了一个helloworld那个 不需要.o文件也能运行,为啥?追答不能运行,.o文件就像windows下的obj文件一样...
你的那个helloworld就如windows下的exe文件一样, 最终运行只要这个就行. 只是在链接过程中需要那个.o文件而已追问可是 我现在用超级终端那个串口调试程序,做嵌入式开发,之前别人写过一个程序 里边有makefile,我在linux里边make完,生成.o文件然后就能在超级终端那里运行,但是超级终端那里边好像不能运行linux下的可执行文件 感觉很诡异啊。。。求解释~

就是我刚发现 用makefile生成的文件能在我的超级终端里边运行,用gcc生成的文件只能在linux下运行,对调就不行 是因为编译器的环境不一样么?
全部回答
  • 1楼网友:想偏头吻你
  • 2021-01-11 01:06
.c只是简单源码文本
.o是编译后的二进制文件
在经过链接产生可执行文件 不同的机器架构产生的很可能是不同的追问多谢多谢 那.o文件不能运行吧?我运行不了在红帽里边
而且我建了一个helloworld那个 不需要.o文件也能运行,为啥?
  • 2楼网友:持酒劝斜阳
  • 2021-01-10 23:51
.O只是中间文件,编译完后就没用了,所以有没有对你能不能运行没有影响
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息