1. 程式人生 > >VS2010編譯FileZilla Server原始碼

VS2010編譯FileZilla Server原始碼

編譯FileZilla Server過程,希望其他人不要走彎路
首先下載相關的檔案:
1、FileZilla_Server-0_9_41.exe
2、zlib-1.2.5.rar
3、tinyxml_2_6_2.zip(這個不用下了,0.9.41裡面有)
安裝FileZilla_Server-0_9_41.exe時,選擇Source Code,如下圖(轉載的圖,版本不對,參考下,不影響):

將相應的檔案解壓縮,放置在E:\FileZilla目錄下:


使用VS2010編譯Boost庫:(注:0.9.41已經移除了對Boost庫的依賴,可以不用編譯了)

cd E:\FileZilla\boost_1_47_0\tools\build\v2
bootstrap.bat
copy bjam.exe E:\FileZilla\boost_1_47_0\
cd E:\FileZilla\boost_1_47_0\
bjam --prefix=E:\FileZilla\boost  --build-type=minimal  toolset=msvc  install
會在E:\FileZilla\boost 目錄下生成Boost庫檔案。

使用VS2010編譯zilb和FileZilla的原始碼,由於官方是用的VS2008,都會提示轉換的,裝轉換就行了

使用VS2010編譯Zib庫: 
用vs2010 開啟E:\FileZilla\zlib-1.2.5\old\visualc6目錄下的zlib.dsp
專案屬性-配置屬性-C/C++-程式碼生成-執行庫  設定成/MT(很重要)
分別生成,選擇LIB Debug 和 LIB Release,會在E:\FileZilla\zlib-1.2.5\old\visualc6目錄下生成相應的檔案 

現在可以用VS2010開啟 FileZilla server.sln 專案檔案了,開啟時會提示找不到GFTP專案,可以忽略。


 將Service設為啟動專案;

專案屬性-配置屬性-C/C++-常規-附加包含目錄:"E:\FileZilla\zlib-1.2.5"False
通常屬性-框架和引用-Copy Local 設定成false

將E:\FileZilla\zlib-1.2.5\old\visualc6\Win32_LIB_Debug\zlibd.lib 拷貝到根目錄(E:\FileZilla\source)下
將E:\FileZilla\zlib-1.2.5\old\visualc6\Win32_LIB_Release\zlib.lib 拷貝到根目錄(E:\FileZilla\source)下

設定 專案屬性-配置屬性-連結器-輸入-附加依賴項:atlsd.lib
在release模式下 檢視專案屬性-配置屬性-連結器-輸入-附加依賴項 中是否有zlibd.lib,有的話刪除並新增zlib.lib

現在應該可以編譯運行了。

編譯時如果有提示libcmtd.lib定義衝突 設定:專案屬性-配置屬性-連結器-輸入-忽略特定的庫:libcmtd.lib

編譯過的原始碼 下載