LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1688|回复: 9

gcc -o hello hello.c编译没通过

[复制链接]
发表于 2003-4-16 10:40:36 | 显示全部楼层 |阅读模式
必须gcc -o hello.out hello.c
编译必须带扩展名么,编译别的C程序是的扩展名呢
发表于 2003-4-16 13:07:17 | 显示全部楼层
怎么会这样,应该没有问题啊。
发表于 2003-4-16 13:47:02 | 显示全部楼层
你先试试gcc ??.c好了
它会产生一个a.out的
 楼主| 发表于 2003-4-16 17:16:25 | 显示全部楼层

我想问的是:编译必须带扩展名么,就想2那样

1.用:gcc hello.c产生的是a.out
然后输入文件名:a.out
输出:hello world
2.用:gcc -o hello.out hello.c产生的是hello.out
然后输入文件名:hello.out
输出:hello world
3.用:gcc -o hello hello.c产生的是hello
然后输入文件名:hello
没输出

因此我想问的是:编译必须带扩展名么,就想2那样
发表于 2003-4-16 21:49:24 | 显示全部楼层
你用的是那个版本.我想没有这个问题.3的也是可以的.
发表于 2003-4-18 20:11:57 | 显示全部楼层
这样执行:
./hello
发表于 2003-4-21 19:51:19 | 显示全部楼层
把错误信息贴出来,才好判断啊。
发表于 2003-4-22 17:26:32 | 显示全部楼层
由于可执行路径不能找到你的hello
所以不能执行hello,
用./hello可以执行
或者在环境文件中加你hello的路径
发表于 2003-4-22 21:50:34 | 显示全部楼层

我的几点看法。

unix下是以文件属性来判断一个文件是否可以执行(这一点与windows中不同)。

编译时没有通过?你说的是程序出错问题还是无法执行?
如果是程序出错:先检查你的程序写得对不对,如果程序都写错了,当然通不过编译。
一些程序可以在一些编译器中成功编译而却不能在另一个编译器中成功编译,举个C++的例子:
在VC中可以这样写# include <iostream.h>但G++却要求你写# include <iostream>;
在TC 3中或许这样写问题void main(){......}但G++要求你写int main(){......}
有些函数(好像)不允许用,如gets()。
用到某些库时,需要加参数,比如你用到curses.h,则
gcc example.c -lcurses
math.h
gcc example.c -lmath
......

还有一点忠告:
编译是最好带-Wall选项(例子略)。

给你推荐一本书:《Linux下的C编辑》
人民邮电出版社
 楼主| 发表于 2003-4-23 16:31:47 | 显示全部楼层

多谢各位!问题已解决

多谢各位!问题已解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表