g++ 编译器选项

gcc/g++ -print-***选项打印编译器信息 1.-print-file-name=lib 打印链接时将使用的库文件库的绝对全名,而无需执行其他任何操作。使用此选项,GCC不会编译或链接任何内容;它只是打印文件名。 2.-print-multi-directory 打印与命令行中存在的任何其他开关选择的multilib对应的目录名称。该目录应该存在于GCC_EXEC_PREFIX中。 g++ -print-multi-directory . 3.-print-multi-lib 打印从multilib目录名到启用它... 阅读详情
gcc and g++分别是gnu的c & c++编译器  

gcc/g++在执行编译工作的时候,总共需要4步  

1.预处理,生成.i的文件  
2.将预处理后的文件不转换成汇编语言,生成文件.s  
3.有汇编变为目标代码(机器代码)生成.o的文件  
4.连接目标代码,生成可执行程序  


[参数详解]  

-x language filename   
   设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根  
   据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果  
   你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这  
   个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数  
   的使用。  
   可以使用的参数吗有下面的这些  
     `c’, `objective-c’, `c-header’, `c++’, `cpp-output’,   
     `assembler’, and `assembler-with-cpp’.  
   看到英文,应该可以理解的。  
   例子用法:  
   gcc -x c hello.pig  
    
-x none filename  
  关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型  
  例子用法:  
  gcc -x c hello.pig -x none hello2.c  
    
-c   
  只激活预处理,编译,和汇编,也就是他只把程序做成obj文件  
  例子用法:  
  gcc -c hello.c  
  他将生成.o的obj文件   

-S  
  只激活预处理和编译,就是指把文件编译成为汇编代码。  
  例子用法  
  gcc -S hello.c  
  他将生成.s的汇编代码,你可以用文本编辑器察看  

-E  
  只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里  
  面.  
  例子用法:  
  gcc -E hello.c > pianoapan.txt  
  gcc -E hello.c | more  
  慢慢看吧,一个hello word 也要与处理成800行的代码  

-o  
  制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果  
  你和我有同感,改掉它,哈哈  
  例子用法  
  gcc -o hello.exe hello.c (哦,windows用习惯了)  
  gcc -o hello.asm -S hello.c  

-pipe  
  使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问  
  题  
  gcc -pipe -o hello.exe hello.c  

-ansi  
  关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一  
  些asm inline typeof关键字,以及UNIX,vax等预处理宏,  

-fno-asm  
  此选项实现ansi选项的功能的一部分,它禁止将asm,inline和typeof用作  
  关键字。  
      
-fno-strict-prototype  
  只对g++起作用,使用这个选项,g++将对不带参数的函数,都认为是没有显式  
  的对参数的个数和类型说明,而不是没有参数.  
  而gcc无论是否使用这个参数,都将对没有带参数的函数,认为城没有显式说  
  明的类型  
    
-fthis-is-varialble  
  就是向传统c++看齐,可以使用this当一般变量使用.  
    
-fcond-mismatch  
  允许条件表达式的第二和第三参数类型不匹配,表达式的值将为void类型  
    
-funsigned-char  
-fno-signed-char  
-fsigned-char  
-fno-unsigned-char  
  这四个参数是对char类型进行设置,决定将char类型设置成unsigned char(前  
  两个参数)或者 signed char(后两个参数)  
    
-include file  
  包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以  
  用它设定,功能就相当于在代码中使用#include<filename>  
  例子用法:  
  gcc hello.c -include /root/pianopan.h  
    
-imacros file  
  将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件  
  中  
    
-Dmacro  
  相当于C语言中的#define macro  
    
-Dmacro=defn  
  相当于C语言中的#define macro=defn  
    
-Umacro  
  相当于C语言中的#undef macro  

-undef  
  取消对任何非标准宏的定义  
    
-Idir  
  在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头  
  文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他  
  回先在你所制定的目录查找,然后再按常规的顺序去找.  
  对于#include<file>,gcc/g++会到-I制定的目录查找,查找不到,然后将到系  
  统的缺省的头文件目录查找  
    
-I-  
  就是取消前一个参数的功能,所以一般在-Idir之后使用  
    
-idirafter dir  
  在-I的目录里面查找失败,讲到这个目录里面查找.  
    
-iprefix prefix  
-iwithprefix dir  
  一般一起使用,当-I的目录查找失败,会到prefix+dir下查找  
    
-nostdinc  
  使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确  
  限定头文件的位置  
    
-nostdin C++  
  规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创建  
  libg++库使用  
    
-C  
  在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很  
  方便的  
    
-M  
  生成文件关联的信息。包含目标文件所依赖的所有源代码  
  你可以用gcc -M hello.c来测试一下,很简单。  
    
-MM  
  和上面的那个一样,但是它将忽略由#include<file>造成的依赖关系。  
    
-MD  
  和-M相同,但是输出将导入到.d的文件里面  
    
-MMD  
  和-MM相同,但是输出将导入到.d的文件里面  
    
-Wa,option  
  此选项传递option给汇编程序;如果option中间有逗号,就将option分成多个选  
  项,然后传递给会汇编程序  
    
-Wl.option  
  此选项传递option给连接程序;如果option中间有逗号,就将option分成多个选  
  项,然后传递给会连接程序.  
    

-llibrary   
  制定编译的时候使用的库  
  例子用法  
  gcc -lcurses hello.c  
  使用ncurses库编译程序  
    
-Ldir  
  制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然  
  编译器将只在标准库的目录找。这个dir就是目录的名称。  
    
-O0  
-O1  
-O2  
-O3  
  编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最  
  高    
    
-g  
  只是编译器,在编译的时候,产生条是信息。  
    
-gstabs  
  此选项以stabs格式声称调试信息,但是不包括gdb调试信息.  
    
-gstabs+  
  此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.  
    
-ggdb  
  此选项将尽可能的生成gdb的可以使用的调试信息. 
ANPC三电平拓扑:两种调制方式解析 ANPC结构是基于“I”型NPC结构(下面讲NPC如不特殊说明,均指的是“I”型结构NPC)发展出来的一种改进型。我们在讲NPC结构的时候会谈到他的一个缺点就是损耗分布不均匀,会导致温升不均衡,进而限制模块的功率输出能力。而ANPC结构由于多了两个开关管以及相应的两个中性点换流回路(如下图),可以更加灵活任意的配置开关管可以使损耗没有那么的不均衡,从而能一定程度上提高模块的输出功率。ANPC拓扑结构图以及增加的环流回路。 阅读详情

相关推荐

RK3308B开发板WiFi+蓝牙一体模组RTL8821CS驱动移植保姆级教程(含DTS配置与避坑点)

本文提供RK3308B开发板RTL8821CS WiFi+蓝牙模组驱动移植的完整教程,涵盖SDK环境配置、DTS设备树设置、内核编译优化及功能验证全流程。重点解析引脚复用冲突、电源管理等关键配置,并给出常见错误解决方案,帮助开发者快速实现双模通信功能。

weixin_42531163的博客 398

GCC参数详解(from: http://oisp.net/viewthread.php?tid=161)

GCC参数详解下面的东西可能也不是很全面但对初学者有帮助。[介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld

飞光流影 1万+

HarmonyOS ArkTS开发实战:用Axios封装一个通用的网络请求工具类(附完整代码)

本文详细介绍了如何在HarmonyOS ArkTS开发中利用Axios封装一个通用的网络请求工具类,涵盖架构设计、核心模块实现、UI状态联动及高级功能扩展。通过单例控制器、拦截器链配置和Token自动刷新机制,提升网络请求的稳定性和可维护性,适用于各类HarmonyOS应用开发场景。

weixin_30772105的博客 491

浅谈Gcc4.4.4优化

Intel Compiler的编译器默认会加载一些有利于程序运行效率的开关,这也是Intel的编译器领先于其他编译器默认开关的原因之一。其实,作为跨平台的编译器,Gcc在选用恰当的优化选项后,运行效率在某些方面也是堪比Intel Compiler的。 下面仅列举Gcc常用的优化选项。有的含义不作说明,请参看帮助文档。 1、-O系列 (1)-O和-O1...

weixin_30319097的博客 245

流量特征工程实战:基于Python脚本的CIC-FlowMeter批量自动化处理

本文详细介绍了如何利用Python脚本对CIC-FlowMeter工具进行批量自动化封装,实现从海量PCAP文件中高效提取流量特征并生成CSV文件。通过构建健壮的自动化流水线,解决了手动处理效率低下、易出错的问题,并分享了并行处理、错误处理等关键优化技巧,助力网络流量分析与机器学习数据预处理工作。

c6d7e8f9g的博客 744

hi3519dv500 os04a10输入调试

因该sensor接在soc端的iic6,在驱动中(Hi3519DV500_SDK_V2.0.1.1\smp\a55_linux\source\mpp\cbb\isp\user\sensor\hi3519dv500\omnivision_os04a10\os04a10_sensor_ctl.c)注意总线的选择。mem_process_isolation=1 改为 mem_process_isolation=0。2、OT_MIPI_SET_HS_MODE配置为LANE_DIVIDE_MODE_1。

linus 3170

[分享栈]centos7安装gcc10.2.0

1、切换到root账户 2、安装gcc4.8.5 yum install -y gcc gcc-c++ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ykUu5mL8-1596458893085)(https://img.wulinn.com/img/gcc1020installgcc485finish.png)] 3、安装bzip2 yum install -y bzip2 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lq2GlN8

武小栈的博客 9490

40分钟快速入门Dart基础(上)

针对final 和const 理解的有点模糊的可以参考这篇文章: 可以参考这里Flutter 知识梳理(Dart)-Dart中static final const 区别看是不是超级好上手,好操作~其实Dart的整个学习起来还是蛮简单的,对于有基础的老司机更简单一些。分分钟敲起来~这篇文章就简单的介绍到这里如何短时间快速入门Dart,避免入坑。由于是想让大家快速入门Flutter,所以针对上面的这些章节我们讲解的只是一些在开发Flutter 过程中常用的一些方法和函数。

qq_7813180 4572

gcc编程4步编译、调试c程序实操详解(Linux系统编程)

gcc编程4步编译c程序实战详解(Linux系统编程)

weixin_63003502的博客 9804

#1机器学习(西瓜书)自学记录

《机器学习 》 Datawhale 组队学习, 吃瓜自学笔记。

qq_74168740的博客 1149

论文Agile Autonomy: Learning High-Speed Flight in the Wild开源代码运行记录

​ Agile Autonomy: Learning High-Speed Flight in the Wild Learning High-Speed Flight in the Wild 论文链接:https://www.science.org/doi/10.1126/scirobotics.abg5810 代码:https://github.com/uzh-rpg/agile_autonomy 国内复现:https://github.com/Howardcl/AgileAutonomyPX4

Hanamizukimr的博客 1491

Centos下GCC的安装(在线模式)

在Centos下,可以在联网状态下在线yum安装GCC,但是此种方式安装的GCC是4.4.7版本的,有时候已经不能满足需要。因此还需在此基础上进行升级。截止目前已经有5.0以上的最新版本了,gcc 4.8 开始全面支持C 11和C++ 11的新特性。下面以4.9.0为例进行安装。

木木 1万+

【头歌】链栈的基本操作及应用

另外,在算法的开始和结束时,栈都应该是空的,所以匹配到最后还要判断栈是否为空,若空,则说明匹配成功,返回1。其中表达式只包含三种括号,花括号{}、中括号[]、圆括号(),即它仅由 (、)、[、]、{、}六个字符组成。预期输出: 栈中元素依次为:12 47 5 8 6 92 45 63 75 38 4 29 弹出的栈顶元素 e=29 栈空否:0(1:空 0:否) 栈顶元素 e=4 栈的长度为11 清空栈后,栈空否:1(1:空 0:否)// 若栈不空,则用e返回S的栈顶元素,并返回OK;

qq_39977056的博客 4384

g++编译器选项

g++编译器选项-Wl--start-group参考资料 -Wl -Wl 将选项作为选项传递给链接器。如果选项包含逗号,则将其拆分为逗号处有多个选项。可以使用此语法传递参数选择权。例如,-Wl,-Map,ouput.map就是识别为 -Map ouput.map 到链接器。使用GNU链接器时,也可以使用=号,例如-Wl, -Map=output.map。 –start-group ---start-group a.o b.o c.o --end-group 代表a.o b.o c.o打包成一组,没有

Srfun的博客 539

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

01.g++编译器常用选项

简介 GCC(GNU Compiler Collection): GNU编译器套件集合 gcc: GCC中的C编译器 g++: GCC中的C++编译器 命令选项 -E g++ -E hello.cpp -o hello.i: 预处理(Preprocessing),生成.i文件 -S g++ -S hello.i -o hello.s: 编译(Compilation),生成.s文件 -c g++ -...

u012086173的博客 572

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

gcc g++ ld 相关编译器选项

1不包含make的相关知识2主要已见过的程序为makefile文件用到的选项为主nm -C dev_insert.onm 列出了 .o 中所有用到的函数?以及自己导出的函数。ldd dev_insert.cgi 列出了启用到的所有 动态库=====================

757

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【Linux】Linux环境基础开发工具使用(三)gcc/g++ 编译器【 Linux编译器-gcc/g++编译器的使用 选项以及介绍 、gcc编译过程的详细讲解 、函数库,动静态库的理解】

在这里涉及到一个重要的概念:函数库我们的C程序中,并没有定义“printf”的函数实现。且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现。那么,是在哪里实现 “printf”函数 的呢?最后的答案是:系统把这些函数实现都被做到名为libc.so.6的库文件中去了。在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去C语言有自己的标准库,默认给你链接到上面去了。

NiNi_suanfa的博客 1603

关于G++编译器选项问题的整理

一:gcc/g++的编译参数,这里只介绍 -L 、-l、-include、-I、-shared、-fPIC       -L :表示要链接的库所在的目录。-L.  表示要链接的库在当前目录, -L/usr/lib 表示要连接的库在/usr/lib下。目录在/usr/lib时,系统会自动搜索这个目录,可以不用指明。      -l (L的小写):表示需要链接库的名称,注意不是库文件名称

筱乐乐哦的博客 2659

g++命令常用选项说明

g++常用选项

qq_33980708的博客 718

【Linux】Linux编译器-gcc/g++使用和gcc具体编译过程以及编译选项的小插曲

预处理 :E编译 :S汇编 :c连接 :c执行10Hello此时,我们想一下在连接中是怎样连接的,和谁连接,怎样实现的,在下一篇文章中小编会详解。

2402_87310323的博客 873

【Linux 05】gcc / g++ 编译器

1. gcc / g++ 的使用。2. gcc / g++ 翻译程序的过程。3. gcc / g++ 常见选项。

shangguanxiu的博客 2667

【Linux】编译器-gcc/g++

💬 hello!各位铁子们大家好哇。今日更新了Linux的编译器gcc、g++的内容。

qinjh_的博客 3818

gcc与g++的常用编译选项

下面对gcc和g++的常用项进行一些罗列,方便需要时快速查找使用。

春夜喜雨的专栏 1545

g++使用

用法:g++ [选项] 文件...选项:  -pass-exit-codes         在某一阶段退出时返回最高的错误码  --help                   显示此帮助说明  --target-help            显示目标机器特定的命令行选项  (使用‘-v --help’显示子进程的命令行参数)  -dumpspecs               显示所有内建

itegel的专栏 5806

gcc/g++ 编译器

所以,在调试的时候最好不要使用任何的优化选项,只有当程序在最终发行的时候才考虑对其进行优化,通常用的是 -O2。静态库的一个缺点是,当同时运行许多应用程序并且他们都使用来自同一个函数库的函数时,内存中就会有同一函数的多份副本,而且在程序文件自身中也有多份同样的副本。通常来说,在编写程序的时候,一些不规范的写法是不会违背C语言的语法规范的,但是却会很有可能在运行的时候带来意想不到的问题。② 编译函数以产生要包含在库文件中的目标文件。库是一组预先编译好的函数的集合,这些函数都是按照可重用的原则编写的。

秩一 2782

Linux编译器---gcc/g++使用详解

GCC(GNU Compiler Collection)是一个由GNU项目开发的编译器套件,它包括了用于多种编程语言的编译器,如C、C++、Fortran、Ada、Go等。GCC是一个开源的工具集,可在多个平台上运行,支持多种操作系统和架构。它是许多操作系统的默认编译器,也是许多开源项目的首选编译工具。

专注于前后端学习 2055
上一篇: Linux内核态和用户态的区别 .
下一篇: 学习jar命令 创建和解压jar文件包
dodo_check
博客等级 码龄19年 29粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值