gcc编译选项

news2025/1/16 1:39:44

gcc编译步骤

有下面一个源程序 main.c:

#include "stdio.h"

int main(void) 
{
    printf("Hello World !");
    return 0;
}

在使用gcc 将 源文件 main.c编译成 可执行目标程序 总共需要4步:
在这里插入图片描述1、源文件 main.c 预处理后,生成main.i 的文件

gcc -o main.i -E main.c

2、将预处理后的文件 main.i 转换成汇编语言, 生成文件 main .s

gcc -S main.i

3、有汇编文件 main.s 变为目标代码(机器代码)生成 main .o 的文件

gcc -c main.s

4、连接目标代码, 生成可执行程序

gcc -o main.out main.o

此时在命令行中输入:

./main.out

回车,即可在终端中打印出: Hello World !

编译选项

以下为常用的编译选项

选项说明
-o制定目标名称, 默认的时候, gcc 编译出来的文件是 a.out
-c只是编译不链接,生成目标文件“.o”
-S只激活预处理和编译,就是指把文件编译成为汇编代码 .S
-E只进行预编译,不做其他处理
-I(i的大写)头文件路径
-L搜索链接库的目录
-l(L的小写)手动添加链接库
-Wall启用编译器的警告信息
-w关闭编译时的警告
-werror把所有的告警信息转化为错误信息,并在告警发生时终止编译过程
-O优化等级,-O0、-O1、-O2、-Og
-D添加宏定义

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

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

相关文章

OpenCV-Python小应用(四):红绿灯检测

OpenCV-Python小应用(四):红绿灯检测前言前提条件实验环境红绿灯检测参考文献前言 本文是个人使用OpenCV-Python的应用案例,由于水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入 …

血氧仪方案组成结构设计分析

任何产品都需要外部结构作为载体,将产品使用化的,血氧仪一样。 在血氧仪方案开发中,我们发现,血氧仪仅仅做好电子功能设计,其实根本就不够,没有好的结构件配合,其实要实现功能,那是天…

Nginx入门笔记

目录 Nginx 快速入门 1. 启动,停止和重新加载 Nginx 配置 2. 配置文件的结构 3. 提供静态内容服务(静态网站) 4. 设置简单的代理服务器 5. 设置 FastCGI 代理 Nginx 进程和运行时控制 1. 主进程和工作进程 2. 控制 Nginx Nginx 配置文件 Nginx 配置 Web 服…

Jenkins 构建maven项目时提示:No compiler is provided in this environment.

在确保虚拟机中的maven已经安装且可以正常执行mvn install 的情况下,Jenkins构建时执行maven编译仍然提示 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 首先请确保你的虚拟机上安装了JDK以及Maven&#…

MPU进化,多核异构处理器有多强?A核与M核通信过程解析

内容来源:www.forlinx.com随着市场对嵌入式设备功能需求的提高,市面上出现了集成嵌入式处理器和单片机的主控方案,以兼顾性能和效率。 在实际应用中,嵌入式处理器和单片机之间需要进行大量且频繁的数据交换,如果采用低…

医学图像处理——DeepDrr工具CT生成DRR

医学图像处理——DeepDrr工具CT生成DRR一、DeepDrr工具介绍二、DeepDRR工具使用三、测试DeepDRR工具3.1 测试数据集3.1.1 阿里云数据3.1.2 LIDC-IDRI肺结节dicom数据集3.1.3 LIDC-IDRI肺结节dicom数据集3.2 测试代码四、总结一、DeepDrr工具介绍 它可以将CT数据模拟X射线投影生…

[附源码]SSM计算机毕业设计政府公用车辆管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

VUE全家桶 (Vue-cli、Vue-route、Vuex)学习笔记

Es6 let 是变量2.const 1. 是常量不能修改 创建的时候一定要赋值 要不报错定义的类 里面的属性值可以修改3.对象创建 1.可以先定义const name1; Const a{name}; 输出a的话就是{“name”:1}; 可以直接放进去函数 Const a{ Run(){ }, Set(){ } } 4. 遍历 遍…

【附源码】计算机毕业设计JAVA校园餐厅管理

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

haproxy软件的日志输出到指定文件

默认haproxy的日志是输出到系统syslog中,查看起来不是非常方便,为了更好的管理haproxy的日志,我们在生产环境中一般单独定义出来。需要将haproxy的info及notice日志分别记录到不同的日志文件中。 需要修改rsyslog配置,为了便于管…

java包以及权限修饰符

Java包和权限修饰符Java包什么是包?如何导包?IDEA如何自动化导包?Java权限修饰符什么是权限修饰符?权限修饰符的分类和具体作用范围:Java包 什么是包? 1.包是用来分门别类的管理各种不同类的,…

Vue【实战三件套】如何封装网络请求、如何解决跨域问题,如何使用mock模拟后端数据,快来一起来看看吧~

一、如何封装网络请求 1.新建项目 vue create item_12.src下新建文件config.js 什么是开发环境 在一个产品的前端开发过程中,一般来说会经历本地开发、测试脚本、开发自测、测试环境、预上线环境,然后才能正式的发布。对应每一个环境可能都会有所差异&…

IPD-全面认识IPD流程

一、商业实现角度透视IPD流程 基于IPD的商业实现过程包括商业机会—商业计划—商业开发—商业兑现。这个过程适用于所有行业,适用于所有创新型市场化企业,包括贸易型企业、外包解决方案型企业、投资型企业等。 商业机会包括市场管理过程中的市场洞察和机会分析,以及需…

[MQ] MQ的应用场景及Docker安装RabbitMQ

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…

PGL图学习之图神经网络GraphSAGE、GIN图采样算法[系列七]

0. PGL图学习之图神经网络GraphSAGE、GIN图采样算法[系列七] 本项目链接:https://aistudio.baidu.com/aistudio/projectdetail/5061984?contributionType1 相关项目参考:更多资料见主页 关于图计算&图学习的基础知识概览:前置知识点学…

CEAC之《计算机应用助理工程师》3

👨‍💻个人主页:微微的猪食小窝 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 微微的猪食小窝 原创 收录于专栏 【CEAC证书】 1在子数据表中最多可以嵌套多少级子数据表? A、5级 B、6级 C、7级 D、8级D2在窗…

leetcode-每日一题-1732-找到最高海拔(简单,数学思想)

今天的每日一题很简单就是一个数学思考没啥难度 有一个自行车手打算进行一场公路骑行,这条路线总共由 n 1 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。 给你一个长度为 n 的整数数组 gain ,其中 gain[i] 是点 i 和点 i 1 的 净海拔高度…

mmdetection训练得到的权重/checkpoints文件分析

这篇文章对mmdetection训练得到的模型权重,或者说checkpoints文件进行分析,一般模型保存在work-dir文件夹下,具体路径要参考训练用到的config,即配置文件。保存的模型一般是.pt的文件。 .pt模型文件读取方法 这种模型文件可以用…

详解Unity中的Nav Mesh新特性|导航寻路系统 (三)

前言 通过前面两篇的介绍与讲解我们已经对新版NavMesh有了一个基础的了解和使用,本篇我们继续讲解剩余的两个组件NavMeshModifier、NavMeshModifierVolume,这两个组件是主要是用于影响导航网格的生成的。所以内容不是很主要,但也非常重要。 …

dubbo:从零理解及搭建dubbo微服务框架(一)

0.引言 dubbo作为阿里巴巴开源的微服务框架,提供了高性能的RPC调用。同时因为有阿里的背书,在国内市场得到了广泛应用,dubbo的开源工作在2018年2月阿里将项目捐献给apache基金会后,得到了更加广大的发展。 之前我们讲解了spring…