金山卫士开源软件之旅(一) VS 2005环境下编译

转载请标明是引用于 http://blog.csdn.net/chenyujing1234

 

参考文档:

http://bbs.code.ijinshan.com/viewthread.phpid=1543

http://bbs.code.ijinshan.com/viewthread.phpid=929&extra=&page=2

1、下载代码与lib

http://code.ijinshan.com/

得到 LIB4pcmanager.tbz    tip.tar.bz2

2、解压文件.得到oss 与 LIB4pcmanager

3、阅读ossReadme.txt

阅读osspcmanagerReadme.txt

按Readme.txt做吧,因为在打开osspcmanagerslnavcenter.sln后的工程avproductmgr,

从工程属性可以看到“附加库目录”为 ……libwin32d

 

4、
编译ksafe.sln解决方案.

对于beikesafe工程,把C++的包含文件的E:winsdkv6.0Include 改为 C:Program FilesMicrosoft SDKsWindowsv6.0AInclude                                         

                                           Lib的包含路径改为 C:Program FilesMicrosoft SDKsWindowsv6.0ALib

当然可以直接在工具->选项->VC++里去包含文件

编译后提示 “提示找不到BeikeUtils.lib”

这是因为还没编译commonlib.sln,找到后改include 与 lib包含路径,OK,编译通过了.

这里再编译beikesafe工程,报错:

—–

我们得把commonlib.sln编译成release的。我选择的是Release ModUrl

报错:

1>d:自己的经验总结自己的经验总结金山开源osspcmanagersrcpublishcommon/registrywow.h(18) : error C2146: 语法错误 : 缺少“;”(在标识符“OpenKeyEx”的前面)
1>d:自己的经验总结自己的经验总结金山开源osspcmanagersrcpublishcommon/registrywow.h(18) : error C4430: 缺少类型说明符 – 假定为 int。注意: C++ 不支持默认 int
1>d:自己的经验总结自己的经验总结金山开源osspcmanagersrcpublishcommon/registrywow.h(19) : error C4430: 缺少类型说明符 – 假定为 int。注意: C++ 不支持默认 int
1>d:自己的经验总结自己的经验总结金山开源osspcmanagersrcpublishcommon/registrywow.h(19) : warning C4183: “OpenKeyEx”: 缺少返回类型;假定为返回“int”的成员函数
1>d:自己的经验总结自己的经验总结金山开源osspcmanagersrcpublishcommon/registrywow.h(39) : error C2146: 语法错误 : 缺少“;”(在标识符“OpenKeyEx”的前面)
1>d:自己的经验总结自己的经验总结金山开源osspcmanagersrcpublishcommon/registrywow.h(39) : error C4430: 缺少类型说明符 – 假定为 int。注意: C++ 不支持默认 int
1>d:自己的经验总结自己的经验总结金山开源osspcmanagersrcpublishcommon/registrywow.h(40) : error C4430: 缺少类型说明符 – 假定为 int。注意: C++ 不支持默认 int

 

编译commonlib.sln 提示 Wow64FsEnableRedirection 好多 未知标识符br> 找到出错的文件(双击就可以定位到这个文件了)和上一个的在同一个文件
添加如下代码:

提示 SHCreateDirectory 不知道是啥br> 在所提示的位置上 #include    把这个声明给他加进来就可以了。

5、编译主界面.

ossksmslnKSafeMain.sln 没有出现错误.

金山卫士开源软件之旅(一) VS 2005环境下编译

==================================================================================================================

经过一天的测试,使用Visual C++ 2005 SP1 + ATL+WTL编译,测试结果为:
2012年3月27日发布的代码:sln目录下的19个sln(不含2个子目录下的),有11个可以正常编译、5个无效(项目已被删除)、4个编译有问题,

11个编译通过的为commonlib.sln 、avcenter.sln、bkver.sln、、kclear.sln、kmsspeed.sln、kprocesslib.lib、lang.sln、softmgr.sln、sysopt.sln

netmon.sln,(其中FwProxy若是DEBUG的那么得把Relaese下的包含文件复制过来。netmon只能编译为release版本,DEBUG的会提示

)

vulfix.sln(只能在Release版本下编译通过,在DEBGU版本下提示:

 

5个无效的为ksafeinstaller.sln、onekeyinstall.sln、PluginEngine.sln、safemon.sln,KSafeMain.sln、

4个有问题的为

ksafe.sln  在DEBUG版本下正常,在Release 下出现下面错误.

提示下面的错误:

 

KSafeMain.sln、

ksafeperfopt.sln   在DEBUG版本下正常,在Release 下出现下面错误.

提示

error MIDL2025 : syntax error : expecting ] or , near
“annotation”
Includeunknwn.idl(108) : error MIDL2026 : cannot recover from earlier syntax errors;

参考: http://blog.csdn.net/immcss/article/details/2581604

在工具->选项->VC++目录中执行文件添加

C:Program FilesMicrosoft SDKsWindowsv6.0Abin解决,

但又提示下面错误

1>LINK : fatal error LNK1104: 无法打开文件“lib_jsonMT.lib”

 

ksafesvc.sln  在DEBUG版本下正常,在Release 下出现下面错误.

1>LINK : fatal error LNK1104: 无法打开文件“lib_jsonMT.lib”

=========================================================================================================================

总的来说对金山是失望的,打着开源的旗号,可是开源关没有完全,且编译都会出现问题。

与外国的开源软件相比,确实还有差距,希望改进.

不管了,虽然不能运行,但有些东西还是有帮助的.这里还是要感谢金山公司.

来源:Jackchenyj

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年2月22日
下一篇 2012年2月22日

相关推荐