GCC简介

GCC命令与参数详解 使用 GCC 需要对编译的四个阶段(编译过程),以及编译的规则有一定的了解,熟悉使用 GCC 对于编写 Makefile 具有决定性的作用。GCC 的命令使用非常灵活,命令都以 gcc 开头然后配合待编译文件名,编译选项即可(可以说 GCC 就只有一条命令,只是编译选项较多而已)。命令选项可以随意组合,只需要注意选项是否包含参数即可,如果选项包含参数则参数需要紧紧跟随在选项后方。 阅读详情

GCC简介

GCC编译过程

gcc编译过程分为4个阶段:预处理->编译->汇编->链接。

预处理

预处理器(cpp)根据以字符#开头的命令(directives),修改原始的C程序。预处理的指令为-E

gcc -E test.c -o test.i

编译

在这个阶段中,Gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,Gcc把代码翻译 成汇编语言。用户可以使用”-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。

gcc -S test.i -o test.s

汇编

汇编阶段是把编译阶段生成的”.s”文件转成目标文件。

gcc -c test.s -o test.o

链接

链接,生成可执行文件

gcc test.o -o test

GCC常用编译参数

-c

仅执行编译,不执行链接

-o

指定生成的输出文件

-O

编译优化:

-O0: 无优化

-O -O1: 基础级别优化

-O2: 更高一级的优化,一般程序推荐使用这个

-O3: 最高级别优化

更加详细的请参考:https://blog.youkuaiyun.com/boylinux/article/details/28986261

-g

编译的时候产生调试信息

-l(lmn中的l)

用来指定要链接的库, 后面紧跟库名,不留空格。

比如我们有库名为libtest.so, 那么可以这样链接:

-ltest

-L

查找库的目录。比如libtest.so放在/tmp/libtest.so:

-L/tmp -ltest

-I(大写的i)

GCC默认会从/usr/include中去找头文件,如果头文件不在/user/include中,那么就需要用-I去指定查找头文件的目录,比如

-I/myinclude

-Wall

生成所有警告信息

-w

关闭所有警告信息

-Werror

把所有的警告都作为错误处理

-v

-shared

生成共享目标文件。总是与-fPIC一起使用。

-fPIC

告诉编译器产生与位置无关代码(Position-Independent Code)

-static

此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么 动态连接库,就可以运行

-m32

生成32位机器的汇编代码

Linux应用(一)——GCC、静态库、动态库 gcc的使用、静态库的制作与使用、动态库的制作与使用。 阅读详情

相关推荐

差分运放电路输出电压偏置设计解析

差分运算放大电路是信号处理中的基础模块,通过差分对管结构实现共模抑制与差模放大。其核心原理基于运放的虚短虚断特性,当电阻网络满足对称条件时,输出电压与输入差分成正比。在工业测量系统中,由于ADC通常仅支持正电压输入,需要通过偏置电路将双极性信号平移至正电压范围。典型设计采用精密基准电压源和匹配电阻网络,既保持信号完整性又满足系统接口要求。本文以-100V高压测量为例,详细解析了分压网络设计、参考电压选取以及电阻匹配等关键技术要点,为传感器接口电路设计提供实践参考。

weixin_35750747的博客 470

为你详解Linux安装GCC方法

下载: http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-4.5.1.tar.bz2 浏览: http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/ 查看Changes: http://gcc.gnu.org/gcc-4.5/changes.htm 现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、F

BullJordan23的专栏 12万+

MATLAB实战:5分钟搞定雷达信号分选SDIF算法(附完整源码下载)

本文详细介绍了如何在MATLAB中快速实现雷达信号分选的SDIF算法,通过序列差直方图统计高效识别脉冲重复间隔(PRI)。文章包含完整源码下载,从算法原理到实战调优技巧,帮助工程师在5分钟内掌握核心实现方法,显著提升雷达信号处理效率。

info6的博客 614

Ubuntu下gcc安装及使用

             Ubuntu下gcc安装及使用 2016年06月21日 10:58:37 29486人阅读 评论(2) 收藏 举报 ...

lucifa_li的博客 4万+

ROS专栏—基于STM32F103的INA219电源数据采集

文章主要记录了stm32f103对ina219的数据采集

热爱生活、奋斗前行 2354

基于激光雷达的目标跟随功能移植到自己的ROS机器人小车上

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、下载目标跟随的源码二、修改话题名称1.修改/cmd_vel话题名称2.修改/scan话题名称3.修改双电机正反转4.目标跟随功能测试 前言 本人尝试把github上的一个目标跟随项目移植到自己的机器人小车上,并且成功了,最终小车可以跟着人移动,在这里分享一下心得。基于激光雷达的目标跟随,通过获取激光雷达的信息,跟随最近的物体。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载目标跟随的源码 源码地址:https:

weixin_44574633的博客 4462

GCC 简介

GCC(GNU Compiler Collection)是一套由 GNU 开发的编程语言编译器,它支持多种编程语言,包括 C、C++、Objective-C、Fortran、Ada 和 Go 等。GCC 是一个开源的工具集,可在多个平台上运行,支持多种操作系统和架构。它是许多操作系统的默认编译器,也是许多开源项目的首选编译工具。GCC 的编译过程可以分为四个主要阶段:预处理(Preprocessing)、编译(Compilation)、汇编(Assembling)和链接(Linking)。

陈辰学长的博客 2334

麦当劳app之sign逆向分析

摘要:本文分析了麦当劳APP请求参数sign的逆向过程。通过抓包发现32位sign参数疑似MD5加密,使用frida-trace工具跟踪CC_MD5函数验证其为标准MD5算法。加密参数包含时间戳、token、版本号等固定和动态字段,拼接后经MD5加密生成sign。文章提供了JS和Python两种实现方案,包含完整的请求头参数和加密逻辑,最终成功获取API响应数据。该研究仅用于逆向技术学习,展示了移动应用常见加密参数的逆向分析方法。

佛系更新... 2438

gcc简介

编译器根据其对程序的了解进行优化。gcc提供的代码优化功能非常强大,它通过参数-On来控制优化代码的生成,其中n为优化级别的整数,比较典型的范围是从0变化到2或3(与版本有关)。,会加深elf文件的理解,但要深刻理解这些结构化的文件,以及计算机程序的执行过程,需要了解加载器、链接器等操作系统提供的程序,这些结构化的文件可以粗糙地理解为上述程序之间的协议。2000年:GCC 3.0发布,引入了全新的C++编译器前端(g++),它提供了对C++标准的更好支持,并且是第一个能够完全支持ISO C99标准的版本。

jisan541的博客 2872

别再调PID了!用MATLAB/Simulink给四旋翼无人机搭个ADRC控制器(附完整仿真模型)

本文详细介绍了在MATLAB/Simulink环境中为四旋翼无人机搭建ADRC控制器的完整流程,包括核心原理、Simulink建模、参数调试技巧及与PID控制的性能对比。ADRC通过扩张状态观测器(ESO)有效提升无人机在复杂扰动下的控制性能,特别适合四旋翼无人机这类强耦合系统。文章还提供了完整的仿真模型和工程实践问题解决方案。

weixin_26808439的博客 382

Spring AI提示词模板应用

本文介绍了使用SpringAI提示词模板的配置方法,主要步骤包括:1)在JDK17和SpringBoot3.4.4环境下引入spring-ai-alibaba1.0.0.2依赖;2)配置application.yml文件;3)创建测试控制器类处理提示词模板(.st文件);4)通过模板变量动态生成AI回复内容。演示了如何通过@RequestParam设置默认参数,实现无需前端传参即可测试AI回复功能,最终完成了一个SpringAI提示词模板的应用Demo。

wjianwei666的专栏 198

gcc 简介

gcc与g++,当程序中出现using namespace std等带有c++特性的语句时,如果用gcc编译时,必须显式地指明这个程序要用c++编译库编译,而g++可以直接编译。支持ansi/iso语法标准,取消gnu所有与ansi冲突的语法扩展。定义指定的宏,使它能够通过源码中的#ifdef进行检验。tc++3 编译该段代码后,大小为:7.8K。bc45编译该段代码后,大小为:53.8k。g++ 编译该段代码后,大小为:4.6K。vc6编译该段代码后,大小为:184k。

嵌入式之斋 1569

基于 YOLOv26 的电路焊点虚焊检测系统:AI 质检实战

本文介绍了一种基于YOLOv26的电路焊点虚焊检测系统,利用深度学习技术实现自动化质检。系统能识别虚焊、桥接、少锡等8种常见焊点缺陷,具有高精度、实时性和强鲁棒性等特点。文章详细阐述了系统架构,包括数据采集、预处理、YOLOv26检测模型和后处理模块,并提供了代码实现的关键部分,如数据预处理增强和模型训练配置。该系统可显著提高电子制造业的质检效率和准确性。

一键难忘的博客 692

GCC编译器——GCC编译器的简介

以下内容源于C语言中文网的学习与整理,如有侵权请告知删除。

主要记录嵌入式学习与开发过程。 6509

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

GCC简介及命令参数总结

在自学Linux相关的知识,学习了GCC、GDB、Makefile等xian相关知识,本想将zhe'这段时间所学东西zong总结一下,奈何肚子里墨水严重不足,盯着屏幕半个小时愣是写不出东西。首先时自己确实学艺不精写不出太深的东西,其次自己写作写作水平有限,写不好什么。就将记的笔记总结一下,再在网上一些内容添加进去丰富一下。 相关博客http://blog.youkuaiyun.com/eastonwoo/a...

Xigle_sun的博客 7805

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

gcc内嵌汇编简介

gcc内嵌汇编简介在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。 1、简单的内嵌汇编 例: __asm__ __volatile__("hlt");"__asm__"表示后面的代码为内嵌汇编,"a...

小白笔记本 563

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

GCC工具链简介

想编译各种嵌入式裸机的,想编译Linux Kernel,又或者想编译u-boot的,或者想编译运行在KylinOS上,甚至想编译运行在Android上的C代码,该选择哪个gcc版本呢? MinGW和gcc什么关系? ARM下几种gcc有什么区别? RISC-V内核又该如何选择GCC工具链呢? gcc不同版本的头文件、动态库等兼容性如何呢? 选择了正确的gcc版本,又是如何编译安装呢? 下载arm gcc时,经常会遇到Linaro,那么Linaro与arm、gcc是什么关系呢? gdb-multiarch?

飞鹤的程序员人生 3547

【GCC】gcc编译器简介

交叉编译是一种在一种体系结构的平台上编译出能在另一种体系结构平台上运行的程序的技术。例如,在x86平台上编译ARM平台程序,编译后的程序无法在x86上运行,需在ARM平台上执行。C语言程序的编译过程包括预处理、编译、汇编和链接四个步骤,最终生成可执行文件。GCC是Linux下常用的C语言编译器,支持多种语言编译,最初为GNU项目开发。GCC提供了多种编译选项,支持动态库和静态库的制作与使用。动态库需放置在系统库目录或通过环境变量指定路径,而静态库则无需额外操作。交叉编译时,需使用特定参数如-fPIC以确保代

weixin_43192805的博客 982
上一篇: linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
下一篇: Makefile简单介绍
guoping2018
博客等级 码龄16年 6粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值