Linux中gcc,g++常用编译选项

gcc/g++ 在执行编译时,需要4步 1.预处理,生成.i的文件[使用-E参数] 2.将预处理后的文件不转换成汇编语言,生成文件.s[使用-S参数] 3.有汇编变为目标代码(机器代码)生成.o的文件[使用-c参数] 4.连接目标代码,生成可执行程序[使用-o参数] -x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定,C语言的后缀名称 是.c的,而C++的后缀名是.C或.cpp,如果你非常个性,决定你的C代码文件的后缀名是.pig 哈哈, 那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。能使用 的参数有下面的这些: c’,objective-c’, c-header’,c++’, cpp-output’,assembler’, and `a ssembler-with-cpp’.   看到英文,应该能理解的。 例子用法: cd… 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等预处理宏 -include file   包含某个代码,简单来说,就是便于某个文件需要另一个文件的时候,就能用他设 定,功能就相当于在代码中使用#i nclude   例子用法: 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   在你是用#i nclude"file"的时候,gcc/g++会先在当前目录查找你所制定的头文件,如 果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他   回先在你所制定的目录查找,然后再按常规的顺序去找.   对于#i nclude,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   和上面的那个相同,不过他将忽略由#i nclude造成的依赖关系。 -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的能使用的调试信息. -static   此选项将禁止使用动态库,所以,编译出来的东西,一般都非常大,也不必什么 动态连接库,就能运行. -shared   此选项将尽量使用动态库,所以生成文件比较小,不过需要系统由动态库. -traditional   试图让编译器支持传统的C语言特性 -Wall 显示所有警告信息(warning all)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1549759.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

甄选范文“论网络安全体系设计”,软考高级论文,系统架构设计师论文

论文真题 随着社会信息化的普及,计算机网络已经在各行各业得到了广泛的应用。目前,绝大多数业务处理几乎完全依赖计算机和网络执行,各种重要数据如政府文件、工资档案、财务账目和人事档案等均依赖计算机和网络进行存储与传输。另一方面,针对计算机和网络的攻击活动日益猖…

STM32-HAL库驱动DHT11温湿度传感器 --2024.9.28

目录 一、教程简介 二、驱动原理讲解 (一)通信4步骤 (二)传感器数据解析 三、CubeMX生成底层代码 (一)基础配置 (二)配置DHT11的驱动引脚 (三)配置串口 四…

uni-app在线预览pdf

这里推荐下载pdf.js 插件 PDF.js - Browse Files at SourceForge.net 特此注意 如果报 Promise.withResolvers is not a function 请去查看版本兼容问题 降低pdf.js版本提高node版本 下载完成后 在 static 文件夹下新建 pdf 文件夹,将解压文件放进 pdf 文件…

【Python】Django Grappelli:打造优雅且现代化的 Django 管理后台

在 Django 开发中,默认的 Django Admin 界面尽管功能强大且能满足大多数管理需求,但其界面设计相对基础,尤其在用户体验和视觉呈现上显得较为简约。在一些项目中,开发者可能需要更加现代化且美观的后台界面。这时,Djan…

[Linux#58][HTTP] 自己构建服务器 | 实现网页分离 | 设计思路

目录 一. 最简单的HTTP服务器 二.服务器 2.0 Protocol.hpp httpServer.hpp 子进程的创建和退出 子进程退出的意义 父进程关闭连接套接字 httpServer.cc argc (argument count) argv (argument vector) 三.服务器和网页分离 思考与补充: 一. 最简单的HTT…

Tomcat搭建zrlog

1.基础环境准备: 在开始进行软件安装和服务配置之前,必须对系统进行基础设置,以确保服务器的正常运行。这个任务要求你进行一些基础的系统配置操作,包括修改主机名、关闭防火墙以及临时关闭 SELinux等。通过这些步骤,…

实验2 网络测试命令的使用及对等网组建

实验2 网络测试命令的使用及对等网组建 一、实验目的 1. 熟悉常用网络测试命令的语法及其功能; 2. 掌握常用的网络故障分析及排除的方法; 3. 熟悉Windows中的网络组建及各参数的设置和基本意义。 4.如何在对等网中建立共享及访问对方的共享资源。 二、…

国庆假节高速免费通行全攻略

关注▲洋洋科创星球▲一起成长! 国庆节假期全国收费公路继续对7座以下(含7座)小型客车免收车辆通行费。 具体免费时段从 10月1日00:00开始 10月7日24:00结束 01 提前出发,免费离开: 如果你在…

FastAPI前置知识及快速入门

FastAPI fastapi,一个用于构建 API 的现代、快速(高性能)的web框架。 fastapi是建立在Starlette和Pydantic基础上的,Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。Starlette是一种轻量级的ASGI框架/工具包…

JNI实现Java调用C++函数

1. 测试环境 操作系统:win10JDK版本:JDK11 安装教程gcc版本:8.1.0 2. 声明native方法 // HelloJNI.java public class HelloJNI {// 输出Hello JNI from CPP. private native static void sayHello();// 实现两个整数相加private native s…

Java基础扫盲(二)

想看Java基础扫盲(一)的可以观看我的上篇文章Java基础扫盲 目录 String为什么设计为不可变的 String有长度限制吗 为什么JDK9将String的char[]改为byte[] 泛型中K,T,V,E,Object,?等都代表什么含义 怎么修改一个类中使用了private修饰的String类型…

Java基于相似算法实现以图搜图

一、简述 本文主要讲如何利用图片相似性算法&#xff0c;基于LIRE来实现图片搜索。 二、依赖 <dependencies><!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core --><dependency><groupId>org.apache.lucene</groupId><…

7.MySQL内置函数

目录 日期函数时间函数字符串函数数学函数其他函数 日期函数 函数名称描述current_date()当前日期current_time()当前时间current_timesamp()当前时间戳date(datetime)返回datetime参数的日期部分date_add(date, interval d_value_tyep)在date中添加日期函数或时间。interval后…

项目计划软件如何助力企业策略规划和执行监控

项目管理软件助力任务、时间和协作管理&#xff0c;如ZohoProjects集成了任务管理、时间跟踪、协作工具等功能&#xff0c;提高性价比&#xff0c;适合不同规模团队。其简化流程、专业度高&#xff0c;成为企业提升效率的重要工具。 一、项目计划软件的由来 项目计划软件的历史…

在线代码编辑器

在线代码编辑器 文章说明前台核心代码后台核心代码效果展示源码下载 文章说明 采用Java结合vue3设计实现的在线代码编辑功能&#xff0c;支持在线编辑代码、运行代码&#xff0c;同时支持导入文件&#xff0c;支持图片识别&#xff0c;支持复制代码&#xff0c;可将代码导出为图…

Cookie、Session、Token(JWT)还不懂?

Cookie、Session、Token&#xff08;JWT&#xff09; 三者的区别与用途&#xff01;如何进行身份认证&#xff0c;保持用户登录状态&#xff1f; Cookie、Session 和 Token 都是在 Web 开发中用于管理用户状态和进行身份认证的技术&#xff0c;它们之间有以下区别和用途&#…

一步步带你Linux内核编译与安装

Linux内核编译与安装 安装流程 #mermaid-svg-0PfY2uowOUJaN2Ov {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-0PfY2uowOUJaN2Ov .error-icon{fill:#552222;}#mermaid-svg-0PfY2uowOUJaN2Ov .error-text{fill:#5522…

地区环境保护支出数据(2007-2023年)

政府环境保护支出是指ZF在环境保护方面投入的CZ资金&#xff0c;用于自然生态保护、污染防治、环境监测与监管等多个领域&#xff0c;旨在改善环境质量、防范环境风险以及促进可持续发展 一、数据介绍 数据名称&#xff1a;地区环境保护支出数据 数据范围&#xff1a;中国31…

yakit使用教程(二,配置证书并进行抓包改包操作)

前文链接&#xff1a;yakit下载安装教程。 一&#xff0c;下载并配置证书。 点击mitm&#xff0c;在跳转后的页面点击高级配置。 点击证书下载。 点击下载到本地并打开&#xff08;建议下载到桌面&#xff09;。 在火狐浏览器下载并安装FoxyProxy&#xff0c;具体参数配置如上…