linux编译出.o文件后为什么运行时错出?ubuntu

[复制链接]
查看11 | 回复3 | 2012-11-4 21:08:22 | 显示全部楼层 |阅读模式
gcc first.c -o first.ogcc first.o这两个命令写错了。-o参数就是指执行文件的输出文件。所以用了-o,就不用第二条命令了。这一个命令把编译,链接两步一起做。用两条命令写gcc -c first.c
gcc first.o -o first主意第一条命令的-c,后面输入源文件名。.o文件与源文件同名。-o如果没有指定,linux默认为a.out为可执行文件名。...
回复

使用道具 举报

千问 | 2012-11-4 21:08:22 | 显示全部楼层
.o 是可重定位目标程序, 虽然打包了机器语言指令,但它还需要和其它的库(比如你用的printf())做链接,最终生成可执行目标文件,这样才可能被加载到内存中由系统执行.你的程序里用到printf(),但你自己并没有实现它,实现在系统的库文件中,因此可链接后才能用嘛....
回复

使用道具 举报

千问 | 2012-11-4 21:08:22 | 显示全部楼层
$ gcc first.c -o first.o用于编译生成可执行结果 first.o 要执行结果的话,不是$ gcc first.o 而是$ ./first.o...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行