zoukankan      html  css  js  c++  java
  • gcc 常用命令

    gcc编译器

    $ gcc -o XX.exe XXX.c ddd.c

    $ gcc -o XX.asm -S XXX.c   编译生成可执行文件,并执行程序,缺省的时候,gcc 编译出来的文件是a.out

    -c   只编译并生成目标文件

    -v/--v/--version      查看gcc版本号

    -I  指定头文件目录,之间没有空格(例如:$ gcc -I./dir  xx.c xx.c -o app)

    -g  包含调试信息

    -On  n=0~3  编译优化,n越大优化得越多

    -w   不生成任何警告信息

    -Wall  提示更多警告信息

    -D  编译时定义宏,之间没有空格

    -E  生成预处理文件(只运行 C 预编译器)

    -M  生成.c文件与头文件依赖关系以用于Makefile,包括系统库的头文件

    -MM   生成.c文件与头文件依赖关系以用于Makefile,不包括系统库的头文件

    GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC 能够编译三种语言:C、C++ 和 O
    bject C(C 语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++
    源程序。

    GCC 可同时用来编译 C 程序和 C++ 程序。一般来说,C 编译器通过源文件的后缀
    名来判断是 C 程序还是 C++ 程序。在 Linux 中,C 源文件的后缀名为 .c,而 C++ 源
    文件的后缀名为 .C 或 .cpp。但是,gcc 命令只能编译 C++ 源文件,而不能自动和 C
    ++ 程序使用的库连接。因此,通常使用 g++ 命令来完成 C++ 程序的编译和连接,该程
    序会自动调用 gcc 实现编译。

    $ g++ -o a(exe文件) XX.C(源文件)  调用 g++ 命令编译、连接并生成可执行文件

    *nm   查看目标文件中的符号(全局变量、全局函数等)(例如:生成的app。$nm app查看app中使用的变量、函数)

    *objdump  用于生成反汇编文件,主要依赖objcopy实现,a.out编译时需要加-g,(例如:-g -o生成的app。$objdump -dSsx app >file,调试信息重定向到file文件)

    *ar  打包生成静态库

    *as  汇编器

    *ld  链接器

     *ranlib  为静态库文件创建索引,相当于ar命令的s选项

    *readelf  解读ELF文件头

  • 相关阅读:
    Codeforces 543E. Listening to Music
    UOJ #138. 【UER #3】开学前的涂鸦
    bzoj 3569: DZY Loves Chinese II
    bzoj 2428: [HAOI2006]均分数据
    bzoj 4589: Hard Nim
    UOJ #119. 【UR #8】决战圆锥曲线
    spoj5973
    codeforces555E
    poj1275
    bzoj4152
  • 原文地址:https://www.cnblogs.com/tangtangde12580/p/8031865.html
Copyright © 2011-2022 走看看