linux gcc 静态编译 减小体积
众所周知,Gcc编译的原始程序一般很大,其实有几种方法能大大减小目标代码的体积,一般有以下几种方法。
基本知识来源:http://www.mingw.org/wiki/Large_executables
1、禁用调试信息
Release编译时不要加上-g开关。
2、使用-Os编译程序。
不要使用-funroll-loops等可以加速程序执行但是会大大增加目标代码体积的开关。
3、编译后的程序使用strip去除符号和偏移(限于可执行程序和共享库,其他易出问题)。
4、如果你不需要RTTI,编译时加入-fno-rtti。
5、如果你不需要处理C++异常,编译时加入-fno-exceptions。
6、使用UPX之类的可执行程序压缩程序(只推荐用于可执行程序,用于其他也可,但是较浪费内存)。
例如,使用wxWidgets动态编译的程序初始体积可能有429KB,经过以上方式(未经UPX压缩)处理后,体积减少为108KB,UPX压缩后体积为35KB。
7、gcc参数-Wl,–gc-sections,不链接未用函数,减小可执行文件大小
详细参考:https://blog.csdn.net/whatday/article/details/104053124
linux gcc 静态编译 减小体积相关推荐
- linux gcc 静态编译,GCC 程序编译的静态链接和动态链接
(给Linux爱好者加星标,提升Linux技能)转自:Mr_Bluyee 在链接阶段中,所有对应于源文件的 .o 文件.'-l' 选项指定的库文件.无法识别的文件名(包括指定的.o目标文件和.a库文件 ...
- Linux下静态编译的一个TIP
Linux下静态编译的一个TIP | 素包子 Linux下静态编译的一个TIP 2010年3月28日 baoz 阅读评论 linux下静态编译好处很多,一来是可以跨发行版(debian redhat ...
- linux gcc 静态 动态链接库
linux gcc 静态 动态链接库 静态链接库 首先生成依赖函数的目标文件 gcc -c source1.c source2.c; 然后归档目标文件到静态库 ar -rcs libYourID.a ...
- linux gcc g++编译命令选项
gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码) ...
- linux 驱动编译静态,Linux驱动静态编译和动态编译方法详解
内核源码树的目录下都有两个文档Kconfig和Makefile.分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单.在内核配置m ...
- linux的静态编译elf无法调试,[翻译]自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB...
自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB 在上一节中,你已经听说了DWARF调试格式,它是程序的调试信息,是一种可以更好理解源码的方式 ...
- linux的静态编译elf无法调试,macos-运行arm-elf-gcc编译代码时出现段错误
使用MacPorts,我刚刚在我的MacBook Pro上安装了arm-elf-gcc.这项工作完美无缺,并且一切运行正常. 但是,在用C和C编译了一个简单的hello world测试程序并尝试在目标 ...
- linux pcre静态编译,Linux下,Nginx部署静态网站
1.准备工作 选首先安装这几个软件:GCC,PCRE(Perl Compatible Regular Expression),zlib,OpenSSL. Nginx是C写的,需要用GCC编译:Ngin ...
- linux gcc出错,编译arm-linux-gcc出错
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在ubuntu12.04下编译arm的交叉编译工具链 执行../gcc-4.6.0/configure --target=$TARGET --prefix ...
最新文章
- Oracle 10g Toad查看 表空间 报错 ORA-00600 internal error code arguments [ktfbhget-4], [6], [5]...
- 大话数据结构-栈与队列
- python-json
- ndarray python 映射_在Matlab的delsq演示中,用numpy方法对向量映射进行ndarray处理?...
- php flash上传进度条,PHP_PHP+FLASH实现上传文件进度条相关文件 下载,PHP之所以很难实现上传进度条 - phpStudy...
- java中paint方法和paintComponent方法的不同
- 管理员信息模块php,管理员模块功能代码
- magento 模块重写
- windows下cmd中命令操作
- 【JAVA实例】代码生成器的原理讲解以及实际使用
- LNMP环境部署----之Mysql安装部署
- select清除原来样式
- java 1.7 环境变量_安装JDK1.8之后又安装1.7出现的环境变量问题
- Shell脚本 – 查看网络接口信息
- 四二拍用音符怎么表示_2020圣诞平安夜怎么发朋友圈?朋友圈关于平安夜经典语录精选...
- sqlserver 登录失败——孤立用户
- 阿里云云计算 32 PolarDB的概念
- <算法导论>练习4.3
- Zemax学习笔记(4)- 设计单透镜实例_1,设置
- css3 360度旋转