zoukankan      html  css  js  c++  java
  • 【linux+C】新征程 linux下C编程

    写在开篇之前

      相信很多同学和虫子一样 当初选择.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


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

  • 相关阅读:
    How does “void *” differ in C and C++?
    Can we use function on left side of an expression in C and C++?
    apache配置局域网访问
    apache以天为单位生成日志
    尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
    IIS 处理程序“PageHandlerFactory-Integrated”
    IIS无法识别的属性targetFramework
    php开启短标签支持
    Notepad++配色方案
    vim常用操作整理
  • 原文地址:https://www.cnblogs.com/dubing/p/2286266.html
Copyright © 2011-2022 走看看