Linux下的“Hello world!”

2.编译器
  在linux下,当然是GCC。看看版本。

  # gcc --version
  gcc (GCC) 4.1.1 20061011 (Red Hat 4.1.1-30)
  Copyright (C) 2006 Free Software Foundation, Inc.

  本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;包括没有适销性和某一专用目的下的适用性担保。
  
  3.运行
  编译生成的文件在终端中可以直接运行:#./filename

  准备好了,开始我们的“Hello World!”

  在用户主文件夹下建一个文件夹Tests。在终端中输入nedit打开编辑器,新建文件,并保存为Tests文件夹下的test.c文件。这样nedit就能够高亮显示C语言的语法关键词。输入一下代码:

  int main(int argc,char **argv)
  {
      printf("Hello World!/n");
  }

  在VC下我们写完这样的一个小函数,只要点击编译,VC就给我们编译好了。这是因为有一个工作VC帮我们做了,那就是写makefile,VC知道我们需 要编译哪些文件,并自动产生编译用的makefile。在VC中我们也可以导出makefile,也就是.mak结尾的文件。而在linux下,就需要我 们自己编写makefile,来告诉编译器GCC编译链接文件时的规则和依赖关系。因此我们要编译生成执行文件,就要为其编写makefile文件。我先 前转载的《一起写makefile》有用了。

  我们在Tests目录下,建立一个名为makefile的文件。用gedit打开编辑.

  test: test.o               //执行文件test依赖于文件test.o
      gcc -o test -g test.o  //-o 输出执行文件名为test,-g 支持源码debug
  test.o: test.c             //test.o依赖于test.c
      gcc -c -g test.c     
  clean:                     //定义了一个命令clean,默认make从文件头开始
      rm test test.o         //移除文件test,test.o

  保存这样的一个makefile文件,打开终端,cd到tests目录。

  #make

  你将看到:

  gcc -c -g test.c
  gcc -o test -g test.o

  先后顺序变了,这就是依赖关系的体现;如果你不想看到这些信息也可以

  #make -s

  这样你的目录下就多了两个文件,test和test.o

  如果要删除这两个文件,我们也有一个clean命令

  #make clean

  这两个文件已经被删除了。

  看看成果,#./test
  输出Hello World!啦。
  到此,Hello World! 就结束了。

  我们在学C语言的时候,好像在写main函数的时候可以不需要参数,而且返回类型也可以是void型。而这里却写成了 int main(int argc,char **argv)有所不同。

  检验一下返回类型,改写为:

  void main(int argc,char **argv)
  {
      printf("Hello World!/n");
  }

  保存->make,提示:

  在函数 ‘main’ 中:

  警告:‘main’ 的返回类型不是 ‘int’

  由此可知这里的main函数的返回类型应该为int,否则就有warning;

  再改写:

  int main(int argc,char **argv)
  {
      printf("Hello World!/n");
      printf("argc == %d/n",argc);
      printf("argv[0] == %s/n",argv[0]);
      printf("argv[1] == %s/n",argv[1]);
  }

  保存->make,通过编译了。

  #./test Hello_World

  结果输出:
  Hello World!
  argc == 2
  argv[0] == ./test
  argv[1] == Hello_world

  结果,已经显示了main的参数的作用。这样的用法在学C的时候就很少提,如果一直在windows下写程序,可能也很少注意到这样的用法。而在编写一些DOS下运行的小工具的时候就需要这样的用法了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值