7Z 920 的若干编译问题

最近由于工作需要在研究7z的开源代码, 其实说是研究也谈不上,只是在使用7z的开发包的时候碰到了一个解压的问题,想定位一下原因,因此从官网上下载了源代码调试一下.

7z是个跨平台的项目, 我们是在windows上开发,总体上说工程文件还算是齐全, 不需要太多的配置.

源代码目录下有几个目录,常用的有几个:

1. CPP\7zip\UI\GUI\GUI.dsp  UI界面的工程.

2. CPP\7zip\Bundles\Format7zF  7z.dll的工程,支持大部分的压缩格式.

3. CPP\7zip\Bundles\Alone7z     7z.dll工程,仅支持7z格式.

我是使用vs2008进行编译的, 打开dsp的时候转换工程文件,都没有问题.

Debug下编译, 会碰到的问题:

1. fatal error LNK1107: 文件无效或损坏: 无法在 0x2E0 处读取

解决方法:
项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法为 是;

如果是编译.Bundles\Format7z的工程里,在Asm/7zCrcOpt.asm上右键属性,去掉常规-->命令行中的-omf 
同样在Asm/AesOpt.asm中去掉-c以外的选项

原因:vs6和vs2008区别造成的,参数-omf为vc6服务的。

2. LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

解决方法:

项目-->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]

项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法为 是;

 

编译完之后,debug版在启动7zg.exe进行调试的时候会报一个错误, 提示 丢失msvcrtd90.dll文件, 只需要将

项目属性-->配置属性-->C/C++-->代码生成-->运行时库 改成多线程调试(Mtd)即可.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值