Visual Studio编译7z源代码

源代码下载

打开地址https://www.7-zip.org/download.html,选择源码下载,可以选择自己需要的版本下载

7z.dll编译

1:解压源代码包,打开vs解决方案,CPP\7zip\Bundles\Format7zF\Format7z.dsw,vs会提示升级,不用管,选择升级。

2:修改7z.dll的输出路径到自己喜欢的路径,原默认是C:\Program Files\7-Zip\7z.dll,由于输出在C盘,经常会由于权限问题导致编译失败,比如修改到:D:\Program Files\7-Zip\7z.dll

3:修改文件7zCrcOpt.asm、AesOpt.asm的工程属性,$(InputName)改为%(FileName),因为$(InputName)在一些VS下是无效的,如图:

4:如果编译报错如下:

打开工程配置,链接器->命令行,配入:/SAFESEH:NO

7zFM.exe编译

1:解压源代码包,打开vs解决方案,CPP\7zip\Bundles\Fm\FM.dsw,vs会提示升级,不用管,选择升级。

2:修改7zFM.exe的输出路径到自己喜欢的路径,原默认是C:\Program Files\7-Zip\7zFM.exe,由于输出在C盘,经常会由于权限问题导致编译失败,比如修改到:D:\Program Files\7-Zip\7zFM.exe

3:如果编译报错为,error C2440: “return”: 无法从“const char [6]”转换为“AString”

打开工程配置,选择编译DebugU和ReleaseU,修改字符编码集为unicode字符集

4:如果编译报错为,1>CVTRES : fatal error CVT1100: 资源重复。类型: MANIFEST,名称: 1,语言: 0x0409,1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

这是因为资源重复导入导致的,打开Cpp\7zip\UI\FileManager\resource.rc,找到第140,141,142行直接删掉就行了


本文为@艺文笔记原创文章,转载请注明出处:https://www.xuwenyan.com/archives/388,非常感谢!
上一篇:  下一篇: