• 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文件头

  • 相关阅读:
    Scala学习随笔——控制语句
    Scala学习随笔——深入类和对象
    Scala学习随笔——Scala起步
    HashMap,HashTable,concurrentHashMap,LinkedHashMap 区别
    vector
    LinkedList,HashSet,HashMap
    ArrayList底层实现
    jion()说明
    yiled(),wait(),sleep()方法区别
    synchronized关键字
  • 原文地址:https://www.cnblogs.com/tangtangde12580/p/8031865.html
Copyright © 2020-2023  润新知