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时就不再报错了。这个问题的原因还不清楚。


  • 相关阅读:
    Tensorflow2(预课程)---2.1、多层感知器-层方式
    pandas.Series转numpy的n维数组
    numpy将多维数组降维成一维
    《仙路争锋》读书感悟---200910(为逆所以顺,为玩所以勤,为生所以死)
    legend3---解决bootstrap栅格系统自动图片高度不齐问题
    python机器学习库numpy---15、模拟e^x的麦克劳林展开式
    400G 光模块的价格
    HTML编辑器 实现ctrl+v粘贴图片并上传、word粘贴带图片
    网页编辑器 实现ctrl+v粘贴图片并上传、word粘贴带图片
    富文本编辑器 实现ctrl+v粘贴图片并上传、word粘贴带图片
  • 原文地址:https://www.cnblogs.com/sparkleDai/p/7605045.html
Copyright © 2011-2022 走看看