≡菜单

如何在Unix OS上编写,编译和执行C程序[带有Hello World示例]

:我想了解如何编写,编译和执行 C程序的Linux 操作系统。你能用一个简单的例子来解释吗?

回答:在本文中,让我们快速回顾一下如何编写基本的 Hello World C程序如何编译* .c程序 在Linux或Unix OS上。

1.编写一个Hello World C程序

如下所示,使用Vim编辑器创建helloworld.c程序。

$ vim helloworld.c

/* Hello World C程序 */

#include<stdio.h>

main()
{
    printf("Hello World!");

}

2.确保系统上已安装C编译器(gcc)

确保如下所示在您的系统上安装了gcc。

$ whereis cc
cc: /usr/bin/cc /usr/share/man/man1/cc.1.gz

$ which cc
/usr/bin/cc

$ dpkg -l | grep gcc
ii  gcc                                        4:4.3.3-1ubuntu1                          The GNU C compiler
ii  gcc-4.3                                    4.3.3-5ubuntu4                            The GNU C compiler
ii  gcc-4.3-base                               4.3.3-5ubuntu4                            The GNU Compiler Collection (base package)
ii  gcc-4.3-doc                                4.3.3-5ubuntu4                            Documentation for the GNU compilers (gcc, go
ii  gcc-4.3-locales                            4.3.3-5ubuntu4                            The GNU C compiler (native language support
ii  gcc-4.3-multilib                           4.3.3-5ubuntu4                            The GNU C compiler (multilib files)
ii  lib64gcc1                                  1:4.3.3-5ubuntu4                          GCC support library (64bit)
ii  libgcc1                                    1:4.3.3-5ubuntu4                          GCC support library

3.编译helloworld.c程序

如下所示,使用cc命令编译helloworld.c。这将创建一个a.out文件。

$ cc helloworld.c

$ ls -l
-rw-r--r-- 1 ramesh ramesh   71 2009-08-28 14:06 helloworld.c
-rwxr-xr-x 1 ramesh ramesh 9152 2009-08-28 14:07 a.out

4.执行C程序(a.out)

您可以执行a.out来查看输出,也可以将其重命名为其他有意义的名称,然后执行如下所示。

$ ./a.out
Hello World!

$ mv a.out helloworld

$ ./helloworld
Hello World!

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. 的Linux 101 Hacks第二版电子书 的Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 21 评论… 加一 }

  • 麦克风 2009年9月4日,上午2:49

    您知道为什么会这样:
    $ cc helloworld.c
    helloworld.c:3:10:错误:#include期望“FILENAME” or
    helloworld.c:在函数“ main”中:
    helloworld.c:7:警告:内置函数“ printf”的隐式声明不兼容

    ?

  • 纳尔迪 2009年9月4日,上午3:13

    我猜编译错误是您的复活节彩蛋=)。

    $ cc helloworld.c
    helloworld.c:3:9:错误:#include期望“FILENAME” or
    helloworld.c:在函数“ main”中:
    helloworld.c:7:警告:内置函数'printf的隐式声明不兼容

    只是为了解释第一个错误(在文件的第3行):’t告诉#include指令“What”包括。它需要一些头文件。我们可能想要的一个是stdio.h,因为它包含了printf函数的声明,我们在第7行中使用了它,这是编译器在第二个错误中抱怨的那个(声明声明可以’换而言之,t =)。
    由于它是系统头文件,因此我们将其添加到(don’t know how they’re called in eng =).

    我叫这个“修补第一个程序的好时机” =))
    这是补丁文件helloworld.patch:
    3c3
    #包括

    只需输入以下内容即可:
    $补丁helloworld.c< helloworld.patch

    然后再次编译文件并享受=)

  • 丰富的猎人 2009年9月4日,上午6:57

    I’我不是程序员。我测试了您的未编译的c程序。我搜索了google,发现您的这一行可能不正确:
    #包括
    应该是
    #包括
    用“#include”该程序已编译。

    丰富

  • 丰富的猎人 2009年9月4日,上午7:06

    再次问好。

    我不’认为我输错了第二个#include。我认为您的网站已删除这里是括号(studio.h),以防万一在上述句子中将其删除。

    丰富

  • 丰富的猎人 2009年9月4日,上午7:14

    已确认。您的网站删除了尖括号,又名菱形括号,又名锥括号或又称人字形。我也必须查一下。

  • 丰富的猎人 2009年9月4日,上午7:24

    顺便说一句,我在新安装的Centos 5.3上使用Firefox 3.0.12。也许其他Web浏览器会显示尖括号。

  • 斯科特 2009年9月4日,上午9:12

    stdio.h没有’t出现在helloworld.c列表中,可能被解释为html标签。

  • 拉梅什·纳塔拉詹(Ramesh Natarajan) 2009年9月4日,下午12:28

    @所有,

    I’我已经纠正了。非常感谢您指出问题。

    你们都没错。它’s是因为stdio.h中的小于和大于符号未正确显示在博客文章中。

  • 麦克风 2009年9月4日,下午12:50

    嘿,太好了!
    谢谢你们!

  • 千吨 2010年10月4日,下午12:21

    当我编译一个源文件时,错误消息不断出现,并说函数printf有一个隐式声明。我不’不知道如何解决。请帮忙!

  • 匿名 2011年10月25日,下午3:28

    谢谢!一世’我一直在寻找一个清晰,简短和有意义的教程,至少我找到了它!

  • 迪帕克·库马尔 2012年1月2日,上午6:42

    有用的thnx

  • 拉吉 2013年1月16日,上午11:54

    很高兴知道….

  • 巴拉吉普 2013年3月15日,上午12:37

    超。非常好!

  • 张han 2013年4月5日,下午7:37

    干得好!唐克斯。

  • 张han 2013年4月5日,下午7:45

    我将示例重写如下,以避免出现一般问题:

    printf(“Hello World!\n”)
    / * ^^ * /

    我将新行指示器插入C。

  • 桑托什 2013年6月24日,上午2:00

    请让我知道Windows和centos C ++ cammand之间的不同之处

    我正在使用centos,并且在我运行任何脚本时都在Windows中训练c ++,但没有工作让我知道我在做什么

  • 苏里亚拉苏 2014年1月28日,上午3:04

    如何运行Unix程序

  • 特里维尼 2015年7月23日,上午9:54

    我没有得到Turbo和Unix之间的区别。为什么要使用$和vi编辑器等等。

  • 谢里·考沙(Shrey Kaushal) 2016年3月3日,晚上10:19

    大家好 !!
    如果可以的话,我想运行一个c ++程序。
    什么 am, I suppose to do as if after includinmg the header file”iostream”
    它仍然没有’t work !!

  • 苏曼·杜塔(Suman Dutta) 2016年5月3日,上午9:47

    您能否说出在运行期间发生错误分段错误(核心转储)错误的原因

发表评论