详解Linux系统下搭建C语言开发环境

Linux平台的C开发环境一般有Eclipse CDT,Source Insight或者VIM,都各有特点,但做为一个完全的Linux和C的门外汉,从最基本的工具开始学起,打好扎实的基础,长远来说应该是更有利的,所以就打算先学学VIM编写C程序。

目前创新互联建站已为千余家的企业提供了网站建设、域名、网站空间、网站托管、服务器租用、企业网站设计、津南网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

安装Unbuntu jeOS

先要安装Linux,Linux有很多发行版本,我们选择Unbuntu jeOS,理由如下:

Ubuntu除了有服务器和桌面版本,也有叫做Ubuntu JeOS(发音“juice”)的版本,Ubuntu JeOS在2007年发行,它代表Just Enough Operating System。Ubuntu Server JeOS在创建虚拟设备的简易性方面明显成熟了。这意味着它的内核精简了,只包括那些虚拟设备需要的选项。正因如此,Ubuntu Server JeOS比任何普通Ubuntu Server版本运行得更有效。Ubuntu Server JeOS在你能展开的已经配置好的应用上提供了一个最小的操作系统。
因为我们是用Linux来学习开发程序,没必要用GUI环境里的那些东西,而且我们是在虚拟机里安装,所以就选择jeOS了,先按如下链接的前半部分安装Unbuntu jeOS

基于Ubuntu Jeos打造自己的精简版Linux服务器

http://www.yanjiuyanjiu.com/2010/04/14/ubuntu-jeos/

其中vmware-tools按文中提示的方法是装不上的,我折腾半天也没装上,老提示vmware-install.pl找不到,chmod 755也不行,需要在vmware里设置虚拟光驱,并指向Linux.iso文件,然后在unbuntu里挂载上光驱,然后把VMWARETO.TGZ解压到自己的一个目录里,再执行./vmware-install.pl。一般把光驱加载到/mnt/cdrom下,用如下脚本

 
 
 
  1. cd /mnt
  2. mkdir cdrom
  3. mount /dev/cdrom /mnt/cdrom

这里要学下cd,mkdir,mount,tar等命令的使用,这些东西用的多了,慢慢积累就熟练了,文中将的SSH Secure Shell Client 3.2.9也挺好用的,建议装下,当然你有喜欢的终端也可以。文中说的共享文件夹挺有用,也可以跟着设置一下,装好vmware-tools就能启用了,这样你可以在windows里用Source Insight查看编辑文件,然后在Linux里进行编译,也挺方便。

安装build-essential

在Ubuntu系列操作系统里有一个apt-get的命令用来在线安装各种软件,很方便简介,可以从网上查下资料,详细了解下该命令的用法,记着把sources.list更新后要执行apt-get update更新源,否则执行其它的apt-get命令会提示出错的,另外网上说的apt-get search命令我这里不能执行。

当然要在线安装各种软件需要先配置好网络,默认装好系统后好像就能连到网络了,但我的机器不知道怎么老不能上网了,可用如下步骤来解决,

1.在vmware里设置网卡模式为NAT

2.先ifconfig -a查看那有几块网卡,一般可以看到lo和eth0,我这里是eth1

3.然后用vi /etc/network/interfaces编辑该文件,再最后面加一句iface eth0 inet dhcp

4.重启虚拟机或者/etc/init.d/networking restart就行了

5.再次ifconfig就可以看到已分配到了IP,然后ping一下外网地址验证一下。

这里简单理解vi是个编辑工具,/etc目录是存放各种服务的配置文件的就行了,装好网络后,我们一般用终端去连接到Linux上,用sudo apt-get install openssh-server安装SSH SERVER,用/etc/init.d/ssh resart 命令启动起来,用ps -e |grep ssh能查看到有sshd就证明启动起来了,以后咱就用终端连接进来操作Linux就好了。

配好网络后执行apt-get install build-essential,就可以自动安装libc,gcc,g++,make等C开发工具了,用apt-cache depends build-essential 命令可以查看该包的依赖关系,完了再apt-get install gdb安装调试工具,用gcc -v来查看gcc的版本,如果能正常出现就说明安装成功了,以下这篇文章可以让你对gcc快速入门

如何使用gcc编译器?

http://Linux.chinaunix.net/doc/2004-10-05/22.shtml

配置VIM配置编辑环境

编译和调试环境安装好了,该装编辑器了,VIM是个入门难,但用熟了会极大提高编辑效率的工具,其实入门也不算难,用一周基本长常用的20%的功能就都熟悉了,老样子用apt-get install vim安装,装好后运行vim命令,确保版本是7.1以上。装好后为了编辑方便,先启用语法高亮显示,自动缩进,显示行号等,用VIM编辑VIM的配置文件vim /etc/vim/vimrc,在末尾加上如下设置

 
 
 
  1. syntax on
  2. set autoindent
  3. set cindent
  4. set nu

先简单设置这些,以后再设置配色方案,自动提示,文件列表等功能,VI的使用,大家可以看看VI的中文手册,和后面的参考链接。

编写简单的C程序

我们先写一个math.c的文件来提供阶乘的功能,然后math.h来提供该文件对外发布的功能,hello.c是一个消费程序,使用math.c提供的功能向用户提供一个输入数字并打印出阶乘的功能。在C里编译的时候只要在包含的.h文件里找到调用的函数声明就可以了,然后链接的时候会从指定的.o文件里寻找.h里声明的函数定义,上面给出的连接里已经学到了gcc生成目标文件,指定输出文件名,指定要连接的目标文件等操作,可是如果一个程序的文件很多的话,打这么多命令很费力,所以这里就需要make命令,我们得编写makefile文件来简化编译过程,makefile文件定义了每个目标文件的依赖,以及生成目标文件的命令,一个目标只有它依赖的文件改变了才会重新编译,这样就很智能的只编译应该需要重新编译的模块。

math.h,声明函数

 
 
 
  1. #ifndef _MATH_H
  2. #define _MATH_H
  3. int f(int); 
  4. #endif 
  5. math.c,函数实现
  6. #include "math.h"
  7. int f(int n)
  8. {
  9.        int t;
  10.        if(n == 0 || n == 1) t = 1;
  11.        else t = n * ( n - 1);
  12.        return (t);
  13. }

hello.c 主函数,实现调用逻辑

 
 
 
  1. #include 
  2. #include "math.h"
  3. int main()
  4. {
  5.        int n, i, sum = 0;
  6.        printf("please input number:");
  7.        scanf("%d",&n);
  8.        for(i = 1;i<=n; i++ ) sum += f(i);
  9.        printf("sum=%d\n", sum);
  10.        return 0;
  11. }

makefile文件,注意makefile文件是一行目标依赖声明,一行目标生成命令,其中目标生成命令前面一定要有个tab,否则执行make命令会出错

 
 
 
  1. hello: math.o math.h hello.c
  2.         gcc hello.c -o hello math.o
  3. math.o:math.c math.h
  4.         gcc -c math.c

然后执行make命令,就会编译源文件,我们运行生成的可执行文件./hello,就会提示输入数字,输入数字后会输出阶乘的值。

 
 
 
  1. root@ubuntu:~/src# make
  2. gcc -c math.c
  3. gcc hello.c -o hello math.o
  4. root@ubuntu:~/src# ./hello
  5. please input number:5
  6. sum=41
  7. root@ubuntu:~/src# 

小结

搭好了环境,熟悉了apt-get,gcc,makefile,vim,Linux基本命令后就可以按着K&R的书多多练习编写C程序了。

参考链接

Eclipse CDT

http://www.eclipse.org/cdt/

JEOS

http://www.ubuntu.com/server/features/virtualisation

基于Ubuntu Jeos打造自己的精简版Linux服务器

http://www.yanjiuyanjiu.com/2010/04/14/ubuntu-jeos/

蛙蛙推荐:蛙蛙教你配置Linux+mysql+.net环境

http://www.cnblogs.com/onlytiancai/archive/2008/12/25/1362623.html

如何使用gcc编译器?

http://Linux.chinaunix.net/doc/2004-10-05/22.shtml

VIM用户手册7.2中文版PDF

http://bbs.Linuxpk.com/thread-33846-1-1.html
vi/vim使用进阶: 目录
http://easwy.com/blog/archives/advanced-vim-skills-catalog/
Vim(gvim)配色方案推荐
http://www.vimer.cn/2009/10/vim%E9%85%8D%E8%89%B2%E6%8E%A8%E8%8D%90.html
让vim在终端下的配色亮起来!
http://www.vimer.cn/2010/02/%E8%AE%A9vim%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%8B%E7%9A%84%E9%85%8D%E8%89%B2%E4%BA%AE%E8%B5%B7%E6%9D%A5%EF%BC%81.html
我最爱的编辑器->VIM(配置插件篇)
http://www.lisunlou.com/archives/269
SSH Secure Shell Client 下使vim语法高亮显示
http://www.uddtm.com/server/openssh/SSH_Secure_Shell_Client_xiashivimyufagaoliangxianshi.php
进行有效编辑的七种习惯-zz
http://www.newsmth.net/bbscon.php?bid=731&id=353

K&R的《C程序设计语言(第2版·新版)》

http://product.dangdang.com/product.aspx?product_id=8766529&ref=search-1-pub

How to Write makefile.pdf(中文版)
http://ishare.iask.sina.com.cn/f/8946939.html?retcode=6102

链接:http://www.cnblogs.com/onlytiancai/archive/2010/09/13/build_linux_c_dev_env.html

标题名称:详解Linux系统下搭建C语言开发环境
网页网址:http://www.hantingmc.com/qtweb/news27/493327.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联