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

gcc 常用命令的更多相关文章

  1. GCC常用命令行一览表

    GCC常用命令行一览表 这些常用的 gcc/g++ 命令行参数,你都知道么?1. gcc -E source_file.c-E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_ ...

  2. gcc 常用命令行及解释

    gcc - GNU project C and C++ compiler   gcc [option] file...            preprocessing         compila ...

  3. Linux系统GCC常用命令和GCC编译过程描述

    前言: GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言.GCC 很快地扩展,变得可处理 C++.后来又 扩展能够支持更多编程语言,如Fortran. ...

  4. Linux GCC常用命令

    1简介 2简单编译 2.1预处理 2.2编译为汇编代码(Compilation) 2.3汇编(Assembly) 2.4连接(Linking) 3多个程序文件的编译 4检错 5库文件连接 5.1编译成 ...

  5. gcc常用命令集

    引用:http://developer.51cto.com/art/200609/32317_1.htm 对于GUN编译器来说,程序的编译要经历预处理.编译.汇编.连接四个阶段 假设源程序文件名为te ...

  6. (转)Linux GCC常用命令

    1简介 2简单编译 2.1预处理 2.2编译为汇编代码(Compilation) 2.3汇编(Assembly) 2.4连接(Linking) 3多个程序文件的编译 4检错 5库文件连接 5.1编译成 ...

  7. gcc常用命令

    1简介 2简单编译 2.1预处理 2.2编译为汇编代码(Compilation) 2.3汇编(Assembly) 2.4连接(Linking) 3多个程序文件的编译 4检错 5库文件连接 5.1编译成 ...

  8. Linux GCC常用命令学习

    1简介 GCC 的意思也只是 GNU C Compiler 而已.经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言:它现在还支持 Ada 语言.C++ 语言.Java 语言.Objective ...

  9. 【转】Linux GCC常用命令

    转自:http://www.cnblogs.com/ggjucheng/archive/2011/12/14/2287738.html 1简介 2简单编译 2.1预处理 2.2编译为汇编代码(Comp ...

随机推荐

  1. wireshark问题

    上一篇wireshark编译成功了,生成了相应的wireshark.exe,dumpcap.exe等可执行文件(这些文件都是可以运行的),编译工具用的是VS2010,但是新生成的文件和文件夹中没有找到 ...

  2. 开发高性能的MongoDB应用—浅谈MongoDB性能优化(转)

    出处:http://www.cnblogs.com/mokafamily/p/4102829.html 性能与用户量 “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题.性能往往 ...

  3. (转)unordered_map与map的对比(C++11新特性)

    unordered_map和map类似,都是存储的key-value的值,可以通过key快速索引到value.不同的是unordered_map不会根据key的大小进行排序, 存储时是根据key的ha ...

  4. 我为什么要翻译ES6官方文档

    ES6出来很久了,现在网上也有很多教程,其中以阮一峰老师的教程最为经典.大家通过学习阮老师的教程肯定能学懂ES6最新的技术. ES6官方文档是一个规范,各浏览器在实现ES6的具体API时都会遵循它.我 ...

  5. java调用linux管道信息的误区

    String cmd = "ps -ef | grep "XXX" " 使用Runtime rt = Runtime.getRuntime();类时 rt.ex ...

  6. How do I avoid capturing self in blocks when implementing an API?

    Short answer Instead of accessing self directly, you should access it indirectly, from a reference t ...

  7. OpenCV4Android安装

    转:http://blog.csdn.net/gao_chun/article/details/49359535 1.下载及目录介绍 2.将 OpenCV引入 Android Studio 3.更新 ...

  8. 使用 Git 和 GitHub 托管项目源码

    这段时间想研究下,GitHub 的使用,但是桌面版下载速度贼慢(貌似需要FQ) 好在 廖雪峰 老师有一个 Git 的教程,也可以和 GitHub 配合使用 廖雪峰老师的Git教程:http://www ...

  9. 前台通过form表单向Django后台传输数据,Django处理后返回给前台

    摘要:Django前后台数据传递 通过action将数据传输给apitest这个地址,使用get方法传递,此处需要传递name="request_method"的下拉列表值和nam ...

  10. Tomcat开机启动设置

    omcat开机启动设置 1.修改/etc/rc.d/rc.local,使用vi /etc/rc.d/rc.local 命令2.在/etc/rc.d/rc.local文件最后添加下面两行脚本 expor ...