注册

第五节:在Linux下运行C语言程序
首页 > 嵌入式开发 > C语言入门视频教程    作者:RainFly   2015年5月15日 19:16 星期五   热度:11179°   字号:   评论:0    
时间:2015-5-15 19:16   热度:11179°  评论:0 条 
          市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核、桌面环境和各种常用的必备工具,国内使用较多的是Ubuntu(乌班图)、CentOS、Deepin(深度Linux)。本教程以Deepin为例来讲述如何编译C程序。

Gedit

Gedit是一个简单实用的文本编辑器,拥有漂亮的界面,支持语法高亮,比 Vim 更易上手。本教程将Gedit作为C代码编辑器。
      Gedit的安装: sudo apt-add-repository ppa:ubuntu-on-rails/ppa //添加ubuntu的软件源 sudo apt-get update //更新软件列表 sudo apt-get install gedit-gmate //安装
      在当前目录下创建一个C源文件并打开: touch test.c gedit test.c
      可以看到gedit的窗口,输入:
      #include<stdio.h>
      #include<stdlib.h>
      intmain()
      {
      printf("Hello,Linux.\n");
      exit(0);

      }

下载.png

 注意:Gedit支持多种语言的高亮显示,一般情况下能够自动识别语言,如果识别错误,请在“编辑->高亮模式“下选择C。
GCC

Linux下使用最广泛的C/C++编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将GCC作为Linux下首选的编译工具。本教程毫不犹豫地使用GCC来编译C程序。
      保存文件后退出,打开终端并 cd 到当前目录,输入下面的命令:
      gcc test.c -o test
      可以直接将C代码编译链接为可执行文件。
      可以看到在当前目录下多出一个文件 test,这就是可执行文件。不像Windows,Linux不以文件后缀来区分可执行文件,Linux下的可执行文件后缀理论上是可以任意更改的。
      当然,也可以分步编译:
1) 预处理
      gcc -E test.c -o test.i
      在当前目录下会多出一个预处理结果文件 test.i,打开 test.i 可以看到,在 test.c 的基础上把stdio.h和stdlib.h的内容插进去了。
2) 编译为汇编代码
      gcc -S test.i -o test.s
      其中-S参数是在编译完成后退出,-o为指定文件名。
3) 汇编为目标文件
      gcc -c test.s -o test.o
      .o就是目标文件。目标文件与可执行文件类似,都是机器能够识别的可执行代码,但是由于还没有链接,结构会稍有不同。
3) 链接并生成可执行文件
      gcc test.o -o test
      如果有多个源文件,可以这样来编译:
      gcc -c test1.c -o test1.o
      gcc -c test2.c -o test2.o
      gcc test1.o test2.o -o test
      注意:如果不指定文件名,GCC会生成名为a.out的文件,.out文件只是为了区分编译后的文件,Linux下并没有标准的可执行文件后缀名,一般可执行文件都没有后缀名。
      编译后生成的test文件就是程序了,运行它:
      ./test
      如果没有运行权限,可以使用sudo命令来增加权限(注意要在Linux的分区下):
      sudo cdmod test 777
      对于程序的检错,我们可以用-pedantic、-Wall、-Werror选项:
      -pedantic选项能够帮助程序员发现一些不符合 ANSI/ISO C标准的代码(并不是全部);
      -Wall可以让gcc显示警告信息;
      -Werror可以让gcc在编译中遇到错误时停止继续。

      这3个选项都是非常有用的。

  您阅读这篇文章共花了:  
捐赠支持:如果觉得这篇文章对您有帮助,请 "扫一扫"鼓励作者!
二维码加载中...
本文作者:RainFly      文章标题: 第五节:在Linux下运行C语言程序
本文地址:http://www.rainfly.cn/?post=109
版权声明:若无注明,本文皆为“雨夜轩”原创,转载请保留文章出处。

赶紧抢沙发哟!

QQ游客评论

返回顶部    首页    捐赠支持    手气不错    友情链接    关于我们    站长工具    站长介绍    手机版本    后台登陆   
版权所有:雨夜轩    站长:RainFly    特别鸣谢   文章归档   皖ICP备15003600号-1   百度统计
Copyright©2015 雨夜轩 Powered by emlog强力驱动 七牛CDN全球加速 360站长联盟安全认证 中国博客联盟荣誉成员 可信赖网站 站点地图   
页面加载耗时:0.037秒 数据库查询次数:11次
背景设置