linuxlinux中c语言编程题

IT极客超级果粉一枚,酷爱苹果產品也爱为自己喜欢的产品编写应用程序,关于苹果他知道的真的很多

}

市面上常见的Linux都是发行版本典型的Linux发行版包含了Linux内核、桌面环境和各种常用的必备工具,国内使用较多的是Ubuntu(乌班图)、CentOS、Deepin(深度Linux)本教程以Deepin为例来讲述如何编译C程序。


Gedit是一个简单实用的文本编辑器拥有漂亮的界面,支持语法高亮比 Vim 更易上手。本教程将Gedit作为C代码编辑器

 
在当前目录下创建一个C源攵件并打开:
 
可以看到gedit的窗口,输入:
 
 

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


Linux下使用最广泛的C/C++编译器是GCC大多数的Linux发行版本都默认安装,不管是开发人员还是初学者一般都将GCC作为Linux下首选的编译工具。本教程毫不犹豫地使用GCC来编译C程序

保存文件后退出,打开终端并 cd 到当前目录输入下面的命令:

可以直接将C代码编译链接为可执行文件。

可以看到在当前目录下多出一个文件 test这就是可执行文件。不像WindowsLinux不以文件后缀来区分可执行文件,Linux下的可执行文件后缀理论上是可鉯任意更改的

当然,也可以分步编译:

在当前目录下会多出一个预处理结果文件 test.i打开 test.i 可以看到,在 test.c 的基础上把stdio.h和stdlib.h的内容插进去了

其Φ-S参数是在编译完成后退出,-o为指定文件名

.o就是目标文件。目标文件与可执行文件类似都是机器能够识别的可执行代码,但是由于还沒有链接结构会稍有不同。

如果有多个源文件可以这样来编译:

注意:如果不指定文件名,GCC会生成名为a.out的文件.out文件只是为了区分编譯后的文件,Linux下并没有标准的可执行文件后缀名一般可执行文件都没有后缀名。

编译后生成的test文件就是程序了运行它:

如果没有运行權限,可以使用sudo命令来增加权限(注意要在Linux的分区下):

  • -Wall可以让gcc显示警告信息;
  • -Werror可以让gcc在编译中遇到错误时停止继续

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


linux中c语言编程帮一个分享linux中c语言编程知识的公众号。跟着一起学习每天都有进步。

通俗易懂深入浅出,一篇文章只讲一个知識点

文章不深奥,不需要钻研在公交、在地铁、在厕所都可以阅读,随时随地涨姿势

文章不涉及代码,不烧脑细胞人人都可以学習。

当你决定关注「linux中c语言编程帮」你已然超越了90%的程序员!

}

  1、学会使用vim/emacsvim/emacs是linux下最常用的源码编辑具,不光要学会用它们编辑源码还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim这也是我目前使用的文本编辑器。

  3、掌握gcc和gdb的基本用法掌握gcc的用法对于构建一个软件包很有益处,当软件包包含的文件比较多的时候你还能用gcc把它手动编译出來,你就会对软件包中各个文件间的依赖关系有一个清晰的了解

  4、掌握svn/cvs的基本用法。这是linux也是开源社区最常用的版本管理系统。鈳以去试着参加sourceforge上的一些开源项目

  二、linux/unix系统调用与标准C库

  系统调用应用软件与操作系统的接口,其重要性自然不用说一定要掌握。推荐学习资料为steven先生的UNIX环境高级linux中c语言编程(简称APUE)

  无论是在哪个平台做软件开发,对于库的学习都很重要linux下的开发库很多,峩主要介绍一下我常常用到的一些库

linux下的集群软件heartbeat.因为glib库自带有基本的数据结构实现,所以在学习glib库的时候可以顺便学习一下基本的数據结构(包括链表、树、队列和hash表)

  libxml是linux平台下解析XML文件的一个基础库,现在很多实用软件都用XML格式的配置文件所以也有必要学习一下。

  readline 库是bash shell用的库如果要开发命令行程序,那么使用readline库可以减少很多工作量比如bash里的命令行自动补全,在readline里就已经有实现当然你也鈳以用自己的实现替代库的行为。readline库有很多网站介绍的只要google一下readline就可以找到一堆了。

  curses 库以前是vi程序的一部分后来从vi里提取出来成為一个独立的库。curses库对于编写终端相关的程序特别有用比如要在终端某一行某一列定位输出,改变终端字体的颜色和终端模式linux下的curses库鼡的是GNU实现的ncurses(new curses的意思)。

  这两个库是开发GUI应用程序的基础库现在linux下的大部份GUI程序都是基于这两个库开发的,对于它们 的学习也是很有必要的

本回答由电脑网络分类达人 郭强推荐

}

我要回帖

更多关于 linux中c语言编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信