2024年3月13日发(作者:)

7zip源码研究

(一)

1 开篇缘由

2012年6月4日,上证指数大跌64.89,巧合。

在离开VC++开发一线N年后,因故需重捡武装。下载安装了Visual Studio 2010旗舰版。

回想当年告别VC++时,尚是VC6…

考虑要重温杀伐旧梦,需有一套合适的代码磨刀。一搜,开源的7zip进入视野。一并

搜了7zip源码资料,中文的实话说未见什么实质性的东西。故开篇写这个笔记,记录自己

摸索的相关情况,对以后也是借鉴。

2 源码下载

7zip的官网:/。当前最新版本9.22b。官网上9.20

是正式版,9.22是beta版。既然是磨刀,beta也无所谓。9.22b的源代码包2;

另有一个7zip的SDK开发包源码2,也一并下了。同时把9.22b安装版也下来

安装了,以便验证编译结果和发布版差异。

3 编译起步

经尝试,带.dsw项目文档的各源码目录,均可打开并编译成功。只是对每个打开的项

目文件需注意修改若干参数(菜单“项目”->“属性”)。自然,对于熟练的VC++程序员,

这些环境参数调整是常识;但对于久疏战阵的本人,还是有必要记录一下相关调整。

相关参数之所以要调整,原因无非是源码发布方在自己的开发环境中有自己的调试安排,

文件放置路径等多少与我们希望的有所差异。另外,发布方用的编译开发环境与我现在要用

VS2010显然也未必相同,故调整比较自然。

需调整的参数包括:

1. 配置属性->常规,“输出目录”、“中间目录”,建议都改成“.Debug”;

2. 查看“链接器->常规”,“输出文件”建议保留文件名,但目录同样改为“.Debug”;

3. 配置属性->常规,“目标文件名”建议改成与“链接器->常规”中“输出文件”相

1 / 6

同;

4. 清单工具->输入和输出,“嵌入清单”改成“否”。当“是”时,因原代码编译环境

较低,在VC2010中编译链接时会出“fatal error LNK1123”。修改该参数后问题解决。

此问题

4 文件了解

整个7zip源码包括较多目录。不少目录下都是.dsw项目文件。故,有必要进一步了解

各个.dsw项目的作用,以掌握整个7zip源码包外部构成。

以下理清思路,一步步从外部开始整个分析过程。

2 / 6