zoukankan      html  css  js  c++  java
  • CentOS6.4(linux)下编写C程序(hello world)步骤及注意事项

    程序员的开始总是从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时就不再报错了。这个问题的原因还不清楚。


  • 相关阅读:
    204. Count Primes (Integer)
    203. Remove Linked List Elements (List)
    202. Happy Number (INT)
    201. Bitwise AND of Numbers Range (Bit)
    200. Number of Islands (Graph)
    199. Binary Tree Right Side View (Tree, Stack)
    198. House Robber(Array; DP)
    191. Number of 1 Bits (Int; Bit)
    190. Reverse Bits (Int; Bit)
    189. Rotate Array(Array)
  • 原文地址:https://www.cnblogs.com/sparkleDai/p/7605045.html
Copyright © 2011-2022 走看看