linux 之gcc 常规参数的使用

2024-06-14 05:48
文章标签 参数 linux 使用 常规 gcc

本文主要是介绍linux 之gcc 常规参数的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

gcc 格式:

gcc [options] souce_file

编译过程选项:
-c:只编译不链接,生成目标文件(扩展名为.o的文件)
-S:只编译不汇编,生成汇编代码(扩展名为.s的文件)
-E:只做预编译(预处理,可以配合-o参数指定扩展名为.i的文件)
-g:包含调试信息
-o file_name:指定目标输出文件
-I[dir]:指定搜索头文件路径(dir是一个目录名)
关于gcc编译过程

库相关选项:

linux下静态链接库和动态链接库格式
.a #扩展名为 .a 的文件是静态链接库 如 libname.a (name 是库的名字)
.so #扩展名为 .so 的文件是动态链接库 如 libname.so[主版本号.次版本号.发行号] (name 是库的名字,版本号可有可无)

关于linux静态库与动态库参考

-static: 静态编译
-shared:生成动态库文件;进行动态编译
-L[dir ]: 库文件搜索中添加路径
-fPIC:生成使用相对位置无关的目标代码(Position Independent Code),然后通常用于使用gcc的 -static 选项从该PIC目标文件生成动态库文件

静态库和动态库的编译过程及调用

编译静态链接库生成目标文件 .o然后调用 ar命令打包   ar crv [*.a] [*.o]
调用静态链接看gcc -o [outfile] [file.c] -L[PATH/file.a]编译动态链接库生成与位置无关的目标代码   gcc -fPIC -c [*.c]调用 -shared 生成动态库  gcc -shared -o [*.so] [*.o]

警告选项:
-w : 关闭所有警告
-Wall:发出gcc提供的所有有用的警告
-pedantic:当gcc在编译不符合 ANSI/ISO C语言标准的源代码时,如果在编译指令中加了-pedantic选项,那么源程序中使用了扩展语法的地方将产生相应的警告信息

优化选项:
-Olevel :优化等级,一般只是最终发布的时候才用。

这篇关于linux 之gcc 常规参数的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

SpringBoot3中使用虚拟线程的完整步骤

《SpringBoot3中使用虚拟线程的完整步骤》在SpringBoot3中使用Java21+的虚拟线程(VirtualThreads)可以显著提升I/O密集型应用的并发能力,这篇文章为大家介绍了详细... 目录1. 环境准备2. 配置虚拟线程方式一:全局启用虚拟线程(Tomcat/Jetty)方式二:异步

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意