gcc 下如何编译时查看展开宏

C/C++ > C语言 [问题点数:100分,结帖人deep_pro]
等级
本版专家分:3
勋章
Blank
黄花 2012年10月 Linux/Unix社区大版内专家分月排行榜第二
2010年4月 Linux/Unix社区大版内专家分月排行榜第二
2010年3月 Linux/Unix社区大版内专家分月排行榜第二
2010年1月 Linux/Unix社区大版内专家分月排行榜第二
2009年12月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年5月 Linux/Unix社区大版内专家分月排行榜第三
2010年10月 Linux/Unix社区大版内专家分月排行榜第三
2010年2月 Linux/Unix社区大版内专家分月排行榜第三
结帖率 98.78%
等级
本版专家分:92998
勋章
Blank
进士 2008年 总版技术专家分年内排行榜第五
Blank
铜牌 2007年6月 总版技术专家分月排行榜第三
Blank
红花 2007年6月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2008年5月 C/C++大版内专家分月排行榜第二
2008年3月 C/C++大版内专家分月排行榜第二
2007年10月 C/C++大版内专家分月排行榜第二
2007年9月 C/C++大版内专家分月排行榜第二
2007年6月 C/C++大版内专家分月排行榜第二
2007年5月 C/C++大版内专家分月排行榜第二
等级
本版专家分:19304
勋章
Blank
红花 2012年4月 Linux/Unix社区大版内专家分月排行榜第一
2012年3月 Linux/Unix社区大版内专家分月排行榜第一
2012年2月 Linux/Unix社区大版内专家分月排行榜第一
2012年1月 Linux/Unix社区大版内专家分月排行榜第一
2011年7月 Linux/Unix社区大版内专家分月排行榜第一
2011年6月 Linux/Unix社区大版内专家分月排行榜第一
2011年2月 Linux/Unix社区大版内专家分月排行榜第一
2011年1月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2013年7月 Linux/Unix社区大版内专家分月排行榜第二
2012年6月 Linux/Unix社区大版内专家分月排行榜第二
2011年5月 Linux/Unix社区大版内专家分月排行榜第二
2011年4月 Linux/Unix社区大版内专家分月排行榜第二
2011年3月 Linux/Unix社区大版内专家分月排行榜第二
2010年10月 Linux/Unix社区大版内专家分月排行榜第二
2010年9月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2011年9月 Linux/Unix社区大版内专家分月排行榜第三
2010年12月 Linux/Unix社区大版内专家分月排行榜第三
2010年11月 Linux/Unix社区大版内专家分月排行榜第三
2010年9月 C/C++大版内专家分月排行榜第三
等级
本版专家分:3
勋章
Blank
黄花 2012年10月 Linux/Unix社区大版内专家分月排行榜第二
2010年4月 Linux/Unix社区大版内专家分月排行榜第二
2010年3月 Linux/Unix社区大版内专家分月排行榜第二
2010年1月 Linux/Unix社区大版内专家分月排行榜第二
2009年12月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年5月 Linux/Unix社区大版内专家分月排行榜第三
2010年10月 Linux/Unix社区大版内专家分月排行榜第三
2010年2月 Linux/Unix社区大版内专家分月排行榜第三
等级
本版专家分:92998
勋章
Blank
进士 2008年 总版技术专家分年内排行榜第五
Blank
铜牌 2007年6月 总版技术专家分月排行榜第三
Blank
红花 2007年6月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2008年5月 C/C++大版内专家分月排行榜第二
2008年3月 C/C++大版内专家分月排行榜第二
2007年10月 C/C++大版内专家分月排行榜第二
2007年9月 C/C++大版内专家分月排行榜第二
2007年6月 C/C++大版内专家分月排行榜第二
2007年5月 C/C++大版内专家分月排行榜第二
等级
本版专家分:906
deep_pro

等级:

Blank
黄花 2012年10月 Linux/Unix社区大版内专家分月排行榜第二
2010年4月 Linux/Unix社区大版内专家分月排行榜第二
2010年3月 Linux/Unix社区大版内专家分月排行榜第二
2010年1月 Linux/Unix社区大版内专家分月排行榜第二
2009年12月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年5月 Linux/Unix社区大版内专家分月排行榜第三
2010年10月 Linux/Unix社区大版内专家分月排行榜第三
2010年2月 Linux/Unix社区大版内专家分月排行榜第三
利用GCC预处理展开宏

...是在预处理时展开的而 gcc 的预处理选项为-E。   所以将调用的那部分代码单独提取出来,然后利用gcc对其进行预处理即可看到宏展开后的代码,方便理解。   方法: gcc -Efile_name.c

gcc的-E选项来查看宏展开

为了看复杂的 展开后的样子, 可以利用gcc -E选项来展开. gcc -E选项的作用: 仅预编译 -E选项就是制作预编译处理, 不做编译, 汇编, 连接. $ gcc --help Usage: gcc [options] file... Options: ... ... -v ...

gcc宏展开

要把源代码中的宏展开,其实只要使用gcc进行预处理即可。 gcc -E source.c >out.txt -E表示只进行预处理,不进行编译。 预处理会把注释当成空格处理掉,如果想保留其中的注释,可以加上-C选项,即: gcc -E...

gcc -E宏展开

编译的时候加上-E选项,可以将源码中的宏展开,方便看代码。展开后的源码在对应的.o文件中。在eclipse中的话,在编译选项的preprocesser中勾选上preprocess only即可。...

编辑器和编译器和区别g、gcc分步编译、system命令的使用

一,编译器和编辑器的区别 编辑器:即编写代码的工具,方便人对程序的操作和管理如窗口系统中的记事本以及Linux的系统中的...预处理:定义展开,头文件展开,条件编译,删除注释在这里并不会做任何语法的检查.gcc...

GCC强制链接静态库

关键词: linux ;... 预处理的定义展开到 hello.i中。 <br />第二步:生成目标代码。 gcc -c hello.i -o hello.o -c参数:生成目标代码。 将 hello.i编译为目

查看 gcc/g++ 预编译结果

以前使用一些框架,比如gtest,里面的定义的比较复杂,使用总觉得看不清真面目,也就是说不知道使用了其中的,最终展开成什么样子。下面是一个解决办法: 以下面的m.cpp为例说明。 #define FOO_ADD(a, b) (a...

linux gcc 静态编译和动态编译

一.编译和链接选项: ...预处理的定义展开到 hello.i中。 第二步:生成目标代码; gcc -c hello.i -o hello.o -c参数:生成目标代码。 将 hello.i编译为目标代码,也可以通过源文件直接生成。 gcc -

Linux C/C++编程之(八)gcc编译

文章目录一、概述二、gcc编译的四个阶段三、gcc命令四、gcc编译1. gcc -E2. gcc -S: 生成汇编指令3. gcc - c: 生成二进制文件4. gcc -I: (包含头文件)5. gcc -o: 指定输出6. gcc -D xxxx: 编译传递7. gcc -g: ...

linux命令gcc常用选项

linux下调试时gcc用的非常比较,下面看gcc常用选项。 E 激活预处理;头文件、展开(.i文件) S 激活预处理、编译;生成汇编代码(.s文件) c 激活预处理、编译、汇编;生成目标文件(.o文件) o 生成...

gcc——预处理(预编译),编译,汇编,链接

【1】删除#define,展开所有定义。例#define portnumber 3333 【2】处理条件预编译 #if, #ifdef, #if, #elif,#endif 【3】处理“#include”预编译指令,将包含的“.h”文件插入对应位置。这可是递归进行的,文件...

Linux系统平台关于GCC编译及使用的方法(-Werror,它要求GCC将所有的警告当成错误进行处理 )

Linux系统平台关于GCC编译及使用的方法 编译: 第一步、是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程: gcc -E hello.c -o hello.i 预处理的定义插入到hello.i中 第二步、是将hello.i编译为...

GCC 编译命令

GCC 编译器在编译一个C语言程序需要经过以下 4 步: 将C语言源程序预处理,生成.i文件。 预处理后的.i文件编译成为汇编语言,生成.s文件。 将汇编语言文件经过汇编,生成目标文件.o文件。 将各个模块的.o文件...

gcc:预处理语句--#define、#error和#warning

#define语句 我们经常会这样定义一些:#define BLOCK 8192但这样的却不能在字符串中展开,如:printf("The BLOCK number./n");输出:The BLOCK number. 想要把处理成字符串,可以使用#号,如:#define MONCK...

Linux下gcc编译c程序生成可执行文件的过程

Linux下gcc编译c文件生成可执行文件 一、准备 hello.c 文件 1、在当前目录新建c文件 $:vim hello.c 2、按i进入编辑模式。按esc退出编辑模式,输入源代码 #include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt...

Linux--gcc的基本用法

gcc 是 GUN Compiler Collection的缩写,可以支持多种语言编译,比如 C,C++,Java, pascal 等。 一、gcc编译过程 1.四个过程 预处理(pre-processing)E 编译器将C源代码中的包含的头文件如stdio.h编译进来,...

gcc 编译选项常用参数(-S -c -E -o)

编译C语言程序中,gcc是最常用的编译器,本文主要说明gcc中最重要,最基本的参数,知道这几个参数的作用,大多数场景编译任务我们都可以完成了。本文也借这几个参数,说明一段c语言代码是如何编译成为机器识别...

GCC 和 GDB调试 总结

一、GCC : gcc和g++是c/c++的编译器。 格式: gcc [options] file... 查看gcc编译器的版本,显示gcc执行的详细过程; -o 指定输出文件名为file,这个名称不能跟源文件名同名; ...

【C语言】编译链接的详细过程

相信大家在学习C语言,肯定会有这么一个问题...首先预处理过程所做的操作是 进行程序的替换,去注释,头文件按照路径展开,以及条件编译。 接着编译操作完成把C语言转成汇编语言。 再接下来,汇编操作完成把汇编语

常见gcc编译参数

1:最常用的方式gcc hello.c -o hello2:预处理后停止编译gcc -E hello.c -o hello.i(.i通常为已经预处理过的C原始程序)3:将hello.i编译为目标代码,可以使用-c参数来完成gcc -c hello.i -o hello.o也可以使用-x参数让...

linux下gcc参数的使用以及编译过程

gcc的使用-v / --v / --version 查看gcc版本号-I目录 指定头文件目录,注意-I和目录之间没有空格-c 只编译,生成.o文件,不进行链接-g 包含调试信息-On n=1~3 编译优化,n越大优化的越多-Wall 提示更多告警信息...

gcc的使用简介与命令行参数说明

2011-06-19 wcdj 参考:《GNU gcc嵌入式系统开发 作者:董文军》(一) gcc的基本用法(二) 警告提示功能选项(三) 库操作选项(四) 调试选项(五) 交叉编译选项(一) gcc的基本用法使用gcc编译器,必须给出一系列必要的...

Linux环境GCC工具链详解(一)

一、说明  GNU/Linux系统上常用的编译工具是GCCGCC实质上不是一个单独的程序,而是多个程序的集合,因此通常称为工具链。 二、程序的编译过程  从C语言源码到可执行... 所有已定义的展开  根据#ifde

gcc程序的编译过程和链接原理

一、C/C++文件的编译过程:先来看一下gcc的使用方法和常用选项 ... 查看gcc编译器的版本,显示gcc执行的详细过程 -o Place the output into ;指定输出文件名为file,这个名称不能跟源文件名同名 -E Pr

GCC详解

开放、自由和灵活是Linux的...在使用gcc编译程序,编译过程可以细分为4个阶段: ● 预处理(Pre-Processing) ● 编译(Compiling) ● 汇编(Assembling) ● 链接(Linking) Linux程序员可以根据自己的需要

GCC与Makefile入门

GCC和程序编译过程 GCC是linux下面的编译器,最初名称是GNU C Compiler (GCC) ,后面逐渐可以编译各种语言,因此GNU Compiler Collection (GCC)。 他是自由软件大神Richard Stallman发起的。目前GCC系列在win...

linuxC/C++源码宏展开

windows编程宏展开 此前写过一篇关于的文章:...使用gcc,g++编译器编译,使用编译器的-P选项,假设有源文件a.cpp,使用以下命令进行宏展开,你就可以在a.prescan文件中看到效果了。 $g++ -E -P a.cpp > a.p

Xcode 常用编译选项设置

乍一看,这些设置可能太麻烦,其实它真的可以节省许多调试应用的时间,在xcconfig文件中指定即可。 用标准库连接 LINK_WITH_STANDARD_LIBRARIES = YES 如果激活此设置,那么编译器在链接过程中会自动使用通过标准...

linux下编译c文件成为可执行文件的实例和详细过程

在命令行模式输入:vim hello.c 进入编辑模式,输入以下代码: #include<stdio.h> int main(void){ printf("Hello World!\n"); return 0; } 首先点击ESC键退出编辑模式,然后输入:wq(注意...

Linux学习日记(十一)——Ubuntu使用gcc编译器

Ubuntu使用gcc编译器 gcc是一款linux的文本编译器,作为一款编译源代码的工具。 gcc编译器的四个阶段 在gcc对源文件进行编译的过程中需要经过以下四个阶段: 预处理(Pre-Processing) 在该阶段,对...

相关热词 c#用函数打印菱形 c# 文件名合法 c# 枚举名称 c# out ref c#五子棋人机 c# ef 事务删除 c# this 属性 c#注册代码没有数据库 c#限定时间范围 c#控件跟随窗口大小变化