前言
上一篇我们看了 GCC 的 PGO,是时候来看看 Clang 啦!
源程序和编译参数都和 GCC 的一样,clang 的 wrapper 做的还是很好的!
clang version 10.0.0-4ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
2025年4月6日大约 3 分钟
上一篇我们看了 GCC 的 PGO,是时候来看看 Clang 啦!
源程序和编译参数都和 GCC 的一样,clang 的 wrapper 做的还是很好的!
clang version 10.0.0-4ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
编译优化是一个很重要的课题。现代编译器不仅实现了 Link-Time Optimization (LTO),针对跨编译单元优化;也实现了 PGO ,基于实际运行数据来进行优化。
多说无益,直接实验启动!
在这之前,有必要提一下我们的环境和编译参数:
为了反编译的简单起见,使用 -Og
进行编译,链接器参数默认。
众所周知,资源文件对程序的运行具有不可或缺的作用。然而,想要实现跨平台的资源文件利用,我们就不得不摒弃 Win32 资源文件。本文介绍了利用 (MinGW) GCC 工具链生成并嵌入资源文件的一种方法。
在这一步,我们将利用 链接器(ld) 生成我们所需要的资源对象文件(.o)。
资源文件可以是任意的格式,包括但不限于图片,文本;以下用两个文本文档为例:
文件:a.txt
dawdawwdwkjagcbsfgbcfgfjbkajkaadgad