gcc and g++分别是GNU的c & c++编译器。gcc/g++在执行编译的时候一般有下面4步:

1 预处理,生成.i的文件。

  命令如下:g++ -E  test.cpp

  此命令只进行预处理,不会生成文件,需要将输出重定向到 test.i 文件中,命令如下:

  g++ -E  test.cpp -o test.i  或  g++ -E  test.cpp > test.i

⒉将预处理后的文件转换成汇编语言,生成文件.s。

  命令如下:g++ -S test.i

  也可以直接生成 .s文件,命令如下:

  g++ -S test.cpp 

⒊由汇编变为目标代码(机器代码)生成.o的文件。

  命令如下:g++ -c test.s 或 g++ -c test.s -o test.o

  也可以直接生成.o文件,命令如下:g++ -c test.cpp

⒋连接目标代码,生成可执行程序。

  命令如下:g++ -o test test.cpp  或  g++ test.cpp -o test 或   g++ -o test test.o

 其它参数

  •   -Wall 使能所有警告信息 命令如下(以hello.cpp为例):g++ -Wall -o hello hello.cpp

     

  •   -g 可以对程序进行调试,生成调试信息。 命令如下:g++ -g -o hello hello.cpp
  •   -w 关闭警告信息 命令如下:g++ -w -Wall -o hello hello.cpp

     

     如图,加入-w 参数后,没有输出警告信息。

  •   -I(大写的i)指定头文件查找目录,当头文件与源文件不在同一目录下时可使用该参数,

     

     g++ -c test.cpp ./func/func.cpp -I./func

g++ 学习笔记的更多相关文章

  1. CC/G++ 学习笔记

    CC/G++ 学习笔记 本文是<An introduction to GCC>的学习笔记,记录使用GCC/G++主要的实用技巧,本文讲述的知识基本上摘自本书,附带自己的一些体验.如果想详细 ...

  2. GCC/G++ 学习笔记

    本文是<An introduction to GCC>的学习笔记,记录使用GCC/G++主要的实用技巧,本文讲述的知识基本上摘自本书,附带自己的一些体验.如果想详细查看本书,请戳这里. 一 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置

    参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...

  5. swift学习笔记1——基础部分

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  6. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  7. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  8. Vue.js学习笔记(2)vue-router

    vue中vue-router的使用:

  9. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

随机推荐

  1. Revit 模态框

    非模态窗口有一个好处,就是可以一直停留在程序之前,然后持续完成操作.但是在Revit二次开发中,非模态窗口也有几个注意事项. 1.需要在文档关闭的时候,把非模态窗口也关闭掉,不然会导致文档关闭,窗口还 ...

  2. 【学习】如何安装GraphLab Create 【转载】

    前人走过的路不用再走,慢慢加上一些工具的链接 GraphLab Create安装,链接地址: http://www.imooc.com/article/18094?block_id=tuijian_w ...

  3. 20164304姜奥——Exp1 PC平台逆向破解

    1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,ge ...

  4. mysql 定时计划任务 wish 按照id分组定时循环启动

    SELECT count(*) FROM wish_sellers_in;UPDATE  wish_sellers_in  SET act_status =0 WHERE  id >=1 AND ...

  5. Linux命令:popd

    语法 popd [-n] [+N | -N | dir] 把目录弹栈,就是从栈里删除.popd只有删除一种意思,不像pushd,既有压栈,又有移动栈内目录的功能. 不带任何参数,模式删除栈顶,即最上面 ...

  6. python框架django-web层

    1.demo 命令行:django-admin startproject HelloWorld 命令执行成功后会根据模版生产一个django项目 然后通过 命令:python3 manage.py r ...

  7. eclipse配置maven仓库

    在eclipse中搭建maven工程时,首先需要搭建好maven本地仓库,搭建过程比较简单 1.首先,在eclipse中,打开windows->Maven->User Settings; ...

  8. Ymodem协议说明

      模块的固件烧录过程,由Term(发送方)发送固件文件,模块(接收方)接收并写入MCU,期间使用的数据传输协议是ymodem协议. 一.概述 ymodem协议是一种发送并等待的协议,即发送方发送一个 ...

  9. 吴裕雄 python 机器学习——Lasso回归

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model from s ...

  10. C# webapi简单学习

    创建WebApi项目: 在VS工具中创建一个ASP.NET Web应用程序 选择Webapi 一个webapi项目就创建好了 这里简单的写一个post和get两种请求的方法,由于post请求参数需要参 ...