代码改变世界

【linux+C】新征程 linux下C编程

2011-12-13 16:31  熬夜的虫子  阅读(42325)  评论(6编辑  收藏  举报

写在开篇之前

  相信很多同学和虫子一样 当初选择.net、java或者其他什么... 一定程度上并非自己的主观意愿 而是迫于职场需要。至于身为微软派为什么要重新走linux的路,这里不想挑起所谓的派系争论,就算一开始虫子选择的是linux下编程,今天也一样会重走windows的。

  另外告诉大家一个好消息,12月份的编程语言排行榜c#已经追到第四了 ~ ~

  本篇开始虫子将和有同样爱好的同学一起学习linux下编程,很多人多说语言是相通的,一通则百通。这里我就不吐槽了,只想说一句人云亦云是不好的。不同类型的编程语言有不同的适用场景,不同的领域。你让c coder去开发web应用、他会拿扫帚追你满街跑,你让c# coder去开发运维相关的底层支撑系统,他也只能笑笑吧。另外在此系列中虫子不想和大家讨论例如什么mono在linux下跑.net之类的。就简单的作一个微软派的linux爱好者吧~ ~Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性。

  linux coder就不用看了 本系列纯粹新手和新手之间的交流 作为完全从0开始 一路吃了不少苦 本系列都记录下来 让后来者不用再填坑了


选择

  系统:ubuntu10.10

  开发工具:eclipse cdt版本

  开发语言:C

  之所以选择这些,看过虫子以前博文的同学应该知道。这些在以前做fastdfs api的时候玩过,稍微熟悉一点。不过博文将从0开始重启诠释整个过程。


学习资料

  ubuntu社区:http://forum.ubuntu.org.cn/

  必看:http://people.ubuntu.com/~happyaron/udc-cn/

  eclipse JRE:。http://www.oracle.com/technetwork/java/javase/downloads/index.html

  eclipse cdt版本:http://www.eclipse.org/downloads/

  C:书籍我就不推荐了  网上资源很多 谭浩强那本就算了 学校里大家大部分都学过 不评价


环境

  装完ubuntu后运行终端

执行命令sudo su

输入密码后拿到root权限

执行命令nautilus 以管理员的角色管理文件夹

下面可以通过浏览器下载所需的资源

也可以使用wget

检查下重要的libevent库

没有的话 从这里下

wget http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz

linux操作系统上面开发程序, 光有了gcc 是不行的
它还需要一个  build-essential软件包

也就是说 编译程序有了这个软件包 它才知道 头文件在哪 才知道库函数在哪
还会下载依赖的软件包   最后才组成一个开发环境 当然 build-essential包 安装时 需要的依赖包 有些你用不上

 检查下最常用的vim


第一个hello world

  首先我们用传统的记事本来试试

  用cd命令选中一个目录 然后再目录下新建个c类型的文件 

  写个简单的c程序

#include <stdio.h>
int
main(void)
{
    printf("Hello,world!\n");
    return 0;
}

 用gcc来编译

假设源程序文件名为chongzi.c。

1. 无选项编译链接
用法:#gcc chongzi.c
作用:将chongzi.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。

2. 选项 -o
用法:#gcc chongzi.c -o chongzi
作用:将chongzi.c预处理、汇编、编译并链接形成可执行文件chongzi。-o选项用来指定输出文件的文件名。

3. 选项 -E
用法:#gcc -E chongzi.c -o chongzi.i
作用:将chongzi.c预处理输出chongzi.i文件。

4. 选项 -S
用法:#gcc -S chongzi.i
作用:将预处理输出文件chongzi.i汇编成chongzi.s文件。

5. 选项 -c
用法:#gcc -c chongzi.s
作用:将汇编输出文件chongzi.s编译输出chongzi.o文件。

6. 无选项链接
用法:#gcc test.o -o chongzi
作用:将编译输出文件chongzi.o链接成最终可执行文件chongzi。

7. 选项-O
用法:#gcc -O1 chongzi.c -o chongzi
作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。

运行生成的程序


用Eclipse来玩c程序

启动Eclipse cdt版本 初始会让你设置个workspace 玩过java的同学都很熟悉 照搬了

这里我们新建一个c项目

设置项目属性

如果是加载已存在的项目 在default location那边设置一下路径就可以了

不过很多程序是用make.sh来生成执行的 要在属性里更改配置

编译后运行


 gbd调试

很多c大牛其实都是不这样调试 很诧异的 他们都是写日志!!!!

不过关于如何调试我就不一点一点讲了

推荐一个链接 http://fanqiang.chinaunix.net/program/other/2006-07-14/4834.shtml


本篇到此 希望对大家有帮助