Linux+C(一)

来源:互联网 发布:网络统考时间 编辑:程序博客网 时间:2024/05/21 08:02
  • gcc

    • GNU编译器套件(GNU Compiler Collection):由 GNU 开发的编程语言编译器,支持很多编程语言。
    • 基本用法

      • gcc [options] [filenames]
      • -c,只编译,不链接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
        -o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。 gcc -o 5.out 5.c (5.out 为可执行,./5.out 执行)
        -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。
        -O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、链接的速度就相应地要慢一些。
        -O2,比-O更好的优化编译、链接,当然整个编译、链接过程会更慢。
        -Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况∶
      • .c为后缀的文件,C语言源代码文件;
        .a为后缀的文件,是由目标文件构成的档案库文件;
        .C,.cc或.cxx 为后缀的文件,是C++源代码文件且必须要经过预处理;
        .h为后缀的文件,是程序所包含的头文件;
        .i 为后缀的文件,是C源代码文件且不应该对其执行预处理;
        .ii为后缀的文件,是C++源代码文件且不应该对其执行预处理;
        .m为后缀的文件,是Objective-C源代码文件;
        .mm为后缀的文件,是Objective-C++源代码文件;
        .o为后缀的文件,是编译后的目标文件;
        .s为后缀的文件,是汇编语言源代码文件;
        .S为后缀的文件,是经过预编译的汇编语言源代码文件。

        • 多个文件一起编译: gcc 1.c 2.c -o 1.out
        • 分开编译:gcc-c 1.c gcc -c 2.c gcc -o 1.o 2.o -o 1.out
  • gdb
  • make

(待更)

0 0