使用VS2005或者2008來編譯libtorrent時,可以按照以下步驟~
一、編譯OpenSSL
OpenSSL的源碼和編譯環境下載:
openssl-1.0.0-beta3版本下載地址:http://www.openssl.org/source/openssl-1.0.0-beta3.tar.gz
A
ctivePerl window安裝程序下載:http://downloads.activestate.com/ActivePerl/Windows/5.10/ActivePerl-5.10.0.1005-MSWin32-x86-290470.msi
OpenSSL安裝過程
1. 安裝ActivePerl程序,確保其bin目錄在環境變量path裏面
2. 解壓OpenSSL源代碼到 F:/openssl (目錄自己定義)
3. 運行 Visual Studio 2008命令提示
4. 在命令行下輸入如下命令:
F:
cd openssl
perl configure VC-WIN32
ms/do_ms
nmake -f ms/ntdll.mak (編譯靜態版本的執行 nmake -f ms/nt.mak )
5. 編譯完成後會在 F:/openssl/out32dll 目錄下生成庫文件、動態鏈接庫文件、Openssl執行文件和測試程序,會用到的有libeay32.lib,ssleay32.lib,openssl.exe libeay32.dll ssleay32.dll
二、編譯boost
下載boost
1、boost_1_39_0.tar.bz2,解壓到F:/boost_1_39_0
2、下載icu4c-4_2_1-Win32-msvc9.zip,解壓到F:/boost_1_39_0,出現F:/boost_1_39_0/icu,添加icu的bin目錄到path環境變量中編譯
3、執行F:/boost_1_39_0/tools/jam/build_dist.bat,生成文件F:/boost_1_39_0/tools/jam/stage/bin.ntx86/bjam.exe,把bjam.exe拷貝到F:/boost_1_39_0目錄下
4、在F:/boost_1_39_0目錄新建一個bat文件,命名爲:bootstrap_vc8.bat,內如爲:
REM used with regex library with unicode support
set ICU_PATH="F:/boost_1_39_0/icu"
bjam --without-python --toolset=msvc-9.0(VS2005爲msvc-8.0)
5、執行bootstrap_vc8.bat即可,結果生成的靜態庫放在F:/boost_1_39_0/stage/lib,動態庫及編譯文件都在F:/boost_1_39_0/bin.v2/libs中
三、編譯libtorrent
1、從http://sourceforge.net/projects/libtorrent/下載libtorrent-rasterbar-0.14.4.tar.gz,解壓到F:/libtorrent
2、下載openssl-1.0.0-beta3解壓到F:/libtorrent/openssl-1.0.0-beta3
3、下載boost_1_39_0.tar.bz2解壓到F:/boost_1_39_0
4、新建win32,lib靜態庫項目工程libtorrent
添加F:/libtorrent/src、F:/libtorrent/zlib和F:/libtorrent/src/kademlia下的所有源文件到工程
預編譯宏添加
WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;
__USE_W32_SOCKETS;TORRENT_LOGGING;TORRENT_VERBOSE_LOGGING;
TORRENT_STORAGE_DEBUG;TORRENT_UPNP_LOGGING;TORRENT_DISK_STATS;
TORRENT_STATS;TORRENT_DHT_VERBOSE_LOGGING;TORRENT_VERBOSE_BANDWIDTH_LIMIT;
TORRENT_USE_OPENSSL;UNICODE;_UNICODE;CMAKE_INTDIR=/"Debug/"
頭文件包含添加
F:/boost_1_39_0;
F:/libtorrent/include;
F:/libtorrent/zlib;
"F:/libtorrent/openssl-1.0.0-beta3/include"
"F:/libtorrent/openssl-1.0.0-beta3/include/libtorrent"
5、編譯
如果要編譯dll項目,除了添加如上預編譯宏外,還要添加TORRENT_BUILDING_SHARED宏,然後添加引用的
libeay32.lib
ssleay32.lib
libboost_date_time-vc90-mt.lib
libboost_filesystem-vc90-mt.lib
libboost_system-vc90-mt.lib
libboost_thread-vc90-mt.lib
注意:在編譯成功後,如欲測試,不要將類庫重引,那樣將使得程序不知該引用那個庫。
添加lib引用路徑:
F:/boost_1_39_0/stage/lib;F:/libtorrent/openssl-1.0.0-beta3/out32dll