经过多次努力编译
0.47a
成功,写下心得,主要注意的是由于依赖了四个开源的库,所以在配置工程连接输入路径时一定要正确配置,还有就是所有工程全部用/MTD方式编译,都要用相应的DEBUG模式,因为是为了学习和研究,所以不提供relase的配置了,需要的话可以参考上一次的编译。原来那次Relase模式的编译没有办法调试,给研究和学习带来不便。
正确的编译方法如下:
先下载下面
4
个库
:
Crypto++ 5.2.1
http://www.eskimo.com/~weidai/cryptopp521.zip
zlib123.zip
http://www.zlib.net/zlib123.zip
ResizableLib 1.3
http://prdownloads.sourceforge.net/resizablelib/ResizableLib_1_3.zip?download
lpng128
http://download.sourceforge.net/libpng/lpng128.zip
Crypto++ 5.2.1
http://www.eskimo.com/~weidai/cryptopp521.zip
zlib123.zip
http://www.zlib.net/zlib123.zip
ResizableLib 1.3
http://prdownloads.sourceforge.net/resizablelib/ResizableLib_1_3.zip?download
lpng128
http://download.sourceforge.net/libpng/lpng128.zip
1.eMule0.47a-Sources.zip 解压到 eMule0.46b-Sources -> 把下载的东东都放进去 -> 打开 eMule0.46b-Sources 文件夹,所有的附加包都按照下述命名要求放入sources文件夹中,和srchybrid同级。
所有的工程都用 Multi-threaded(/MT) 编译模式
2.cryptopp521.zip
解压到
cryptopp521 ->
重命名为
crypto51
打开 crypto51/cryptest.dsw
点 生成 -> 生成解决方案
编译模式: Debug 模式
打开 crypto51/cryptest.dsw
点 生成 -> 生成解决方案
编译模式: Debug 模式
3.zlib123.zip
解压到
zlib123 ->
重命名为
zlib
打开 zlib/projects/visualc6/zlib.dsw
点 生成 -> 配置管理器 -> 活动的解决方案配置 ->LIB Debug
解决方案资源管理器 -> 右击 "zlib" -> 属性 -> 配置属性 ->C/C++-> 代码生成 -> 运行时库 -> 多线程调试 (/MTd)
点 生成 -> 生成解决方案
编译模式: LIB_DEBUG 模式
打开 zlib/projects/visualc6/zlib.dsw
点 生成 -> 配置管理器 -> 活动的解决方案配置 ->LIB Debug
解决方案资源管理器 -> 右击 "zlib" -> 属性 -> 配置属性 ->C/C++-> 代码生成 -> 运行时库 -> 多线程调试 (/MTd)
点 生成 -> 生成解决方案
编译模式: LIB_DEBUG 模式
4.ResizableLib_1_3.zip
解压到当前文件夹
打开 ResizableLib/ResizableLib.dsw
点 项目 -> 属性 -> 配置属性 -> 常规 ->MFC 的使用 -> 在静态库中使用 MFC
点 项目 -> 属性 -> 配置属性 -> 常规 -> 字符集 -> 使用 Unicode 字符集
点 项目 -> 属性 -> 配置属性 ->C/C++-> 代码生成 -> 运行时库 -> 多线程调试 (/MTd)
点 项目 -> 属性 -> 配置属性 ->C/C++-> 语言 -> 将 wchar_t 视为内置类型 -> 是 (/Zc:wchar_t)
点 生成 -> 生成解决方案
编译模式: DEBUG Static 模式
打开 ResizableLib/ResizableLib.dsw
点 项目 -> 属性 -> 配置属性 -> 常规 ->MFC 的使用 -> 在静态库中使用 MFC
点 项目 -> 属性 -> 配置属性 -> 常规 -> 字符集 -> 使用 Unicode 字符集
点 项目 -> 属性 -> 配置属性 ->C/C++-> 代码生成 -> 运行时库 -> 多线程调试 (/MTd)
点 项目 -> 属性 -> 配置属性 ->C/C++-> 语言 -> 将 wchar_t 视为内置类型 -> 是 (/Zc:wchar_t)
点 生成 -> 生成解决方案
编译模式: DEBUG Static 模式
5.lpng128.zip
解压到当前文件夹
->
重命名为
png
打开 png/projects/visualc6/libpng.sln
点 生成 -> 配置管理器 -> 活动的解决方案配置 ->LIB Debug
解决方案资源管理器 -> 右击 "libpng" -> 属性 -> 配置属性 ->C/C++-> 代码生成 -> 运行时库 -> 多线程调试 (/MTd)
点 生成 -> 生成解决方案
编译模式: LIB_DEBUG 模式
打开 png/projects/visualc6/libpng.sln
点 生成 -> 配置管理器 -> 活动的解决方案配置 ->LIB Debug
解决方案资源管理器 -> 右击 "libpng" -> 属性 -> 配置属性 ->C/C++-> 代码生成 -> 运行时库 -> 多线程调试 (/MTd)
点 生成 -> 生成解决方案
编译模式: LIB_DEBUG 模式
6.
打开
id3lib/libprj/id3lib.sln
点 生成 -> 生成解决方案
编译模式: Debug 模式
点 生成 -> 生成解决方案
编译模式: Debug 模式
7.
打开
srchybrid/lang/lang.sln
点 生成 -> 生成解决方案 /* 可能会出现 ‘ 非法操作 ‘ 不管它 */
点 生成 -> 生成解决方案 /* 可能会出现 ‘ 非法操作 ‘ 不管它 */
8.
打开
srchybrid/CxImage/cximage.sln
点 生成 -> 生成解决方案
编译模式: Debug 模式
9. 打开 srchybrid/emule_vc71.sln
点 项目 -> 属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项 ->
version.lib winmm.lib ws2_32.lib gdiplus.lib ADSIId.lib crypt32.lib ../zlib/projects/visualc6/Win32_LIB_Debug/zlibd.lib ../crypto51/debug/cryptlib.lib ../id3lib/libprj/id3libD.lib ./CxImage/debug/cximage.lib ../png/projects/visualc71/Win32_LIB_Debug/pngd.lib ../ResizableLib/Debug_Static/ResizableLib.lib
点 生成 -> 生成解决方案
编译模式: Debug 模式
9. 打开 srchybrid/emule_vc71.sln
点 项目 -> 属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项 ->
version.lib winmm.lib ws2_32.lib gdiplus.lib ADSIId.lib crypt32.lib ../zlib/projects/visualc6/Win32_LIB_Debug/zlibd.lib ../crypto51/debug/cryptlib.lib ../id3lib/libprj/id3libD.lib ./CxImage/debug/cximage.lib ../png/projects/visualc71/Win32_LIB_Debug/pngd.lib ../ResizableLib/Debug_Static/ResizableLib.lib
(注意上面的路径和自己编译出来的库名可能会有一部分不相符,要注意哦!自己好好核对,把附加库的路径和名字都写对了!)
编译模式: Debug 模式
编译模式: Debug 模式