?? emule 0.47a編譯.txt
字號:
經過多次努力編譯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
eMule v0.47a的源代碼:
http://www.emule-project.net/home/perl/general.cgi?l=16&rm=download
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模式
3.zlib123.zip解壓到 zlib123 ->重命名為zlib
打開 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模式
5.lpng128.zip解壓到當前文件夾->重命名為png
打開 png\projects\visualc6\libpng.sln
點生成 -> 配置管理器 ->活動的解決方案配置 ->LIB Debug
解決方案資源管理器 -> 右擊 "libpng" ->屬性 ->配置屬性->C/C++->代碼生成->運行時庫->多線程調試(/MTd)
點生成 -> 生成解決方案
編譯模式: LIB_DEBUG模式
6.打開 id3lib\libprj\id3lib.sln
點生成 -> 生成解決方案
編譯模式: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模式
編譯環境:XP pro SP2, VS.net 2003
C2451錯誤PeerCacheFinder.cpp中:
if(result.Encode(aucResult, SIGNATURELENGTH)){ 改為
result.Encode(aucResult, SIGNATURELENGTH);
if((aucResult, SIGNATURELENGTH)!=0){
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -