CentOS6.4(linux)下编写C程序(hello world)步骤及注意事项
来源:互联网 发布:电视网络接收器 编辑:程序博客网 时间:2024/05/16 18:13
程序员的开始总是从hello world开始的,这次在linux下编写c程序,也同样是从hello world开始。
我使用的是CentOS6.4。要编写c程序,gcc是必备的,emacs也是大部分人首选的。如果安装的是CentOS6.4的完整包,gcc和emacs已经带上了。
本以为是很容易就可以编写第一个hello world的,可是实际写的时候,发现代码是很快就OK了,但编译的时候遇到了各种问题。下面先来简述一下步骤。
1.启动emacs
右键->在终端中打开->输入emacs->回车。打开emacs,如下图。
2.新建helloworld
我建了一个helloworld的文件夹,然后在里面建了个hello.c的文件,再用emacs打开。当然这一过程也可以使用命令来完成。不过,界面操作相对简单,也不易出错。
输入了一段helloworld的代码,如下图
3.编译helloworld
(1)在emac中按下Alt+X,这时emac下方会显示如下画面
(2)在M-x 后面的光标中输入eshell->回车,弹出如下画面。
(3)输入gcc hello.c -o hello,按回车后编译,如果成功,将出现如下画面。
命令行进入新的一行,同时在hellowrold文件夹下多了一个hello的文件。
(4)执行hello。在命令行中输入./hello,按下回车,输出helloworld。如下图。
如果一切顺利,是应该这样的,但是我却没有那么顺利,中间遇到了几个问题,总结如下。
问题1:输出的文件不是hello
按照流程,在写了一段hello.c的代码后,就是gcc编译了,可是编译出的文件不是hello,而是a.out。后面发现,原来是少了-o的选项,就是gcc hello.c -o hello中的-o选项,这个-o表示指定输出的名字,如果不指定,系统会默认给出一个,这样对后续的操作不太友好。
问题2:在执行./hello时,提示权限不够
在用gcc编译出来后,虽然得到了hello,但是在执行./hello却提示权限不够,试了很多方法,还是权限不够。最后实在想不出更好的方法了,于是直接改了用户的权限为root权限,当然启用root来登陆也是可以的。只是我VM下用root用户登陆时,总会莫名其妙的出错,具体原因还有待进一步调查。后面就采用了提升当前用户权限的做法,如果不知怎么提升的,可以参见该文http://blog.csdn.net/xxdddail/article/details/9999143。
问题3:gcc hello.c编译进报错
在使用gcc hello.c时报错,提示没有main函数、没有printf函数等,后来查了下,说是要增加-c的选项,即gcc -c hello.c。这样是编译出来了,但是执行时又提示出错:不是可执行的二进制文件。后来我改了用户权限后再进来,再用gcc hello.c时就不再报错了。这个问题的原因还不清楚。
- CentOS6.4(linux)下编写C程序(hello world)步骤及注意事项
- Linux下编写C程序( GCC )(hello,world)
- Linux下编写C程序( GCC )(hello,world)
- Linux下编写第一个c语言程序hello world
- LINUX C编写一个hello world!程序
- (转)Linux下编写C程序( GCC )(hello,world)
- linux下使用vim编写运行C,C++程序(以hello world为例)
- linux下使用汇编语言编写hello world!程序
- Linux下实现c语言hello world 步骤
- C语言编写cgi程序hello world
- yaf框架下编写Hello World程序
- Linux 下编译hello world 的C 语言程序
- Linux 下编译hello world 的C 语言程序
- c编写hello world
- Windows下qt的环境配置及运行一个c++"hello world"实例详细步骤
- JQuery Hello World及注意事项
- 在Redhat9 Linux下安装java开发环境,并编写“Hello world”程序
- 编写第一个C语言程序-Hello World
- Android fill_parent、wrap_content和match_parent的区别
- WebRTC - Introduction to WebRTC architecture - 09
- linux配置出错系统起不来及乱炖
- C#实现实时监控文件目录下的变化
- struts2利用poi导出excel文件
- CentOS6.4(linux)下编写C程序(hello world)步骤及注意事项
- IP-Video-Monitor-P2P-Based
- 基于电力线载波的物联网智能家居控制系统研究方案
- 解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
- Modbus通讯协议
- ORACLE空间管理实验7:块管理之MMSM--为什么SYSTEM/UNDO/TEMP是MMSM管理?
- 淘宝下单高并发解决方案
- 随风而逝的青春
- 如何修改AOSP以加入自己的设备,应用,工具等