visual studio 2008 编译 filezilla

http://filezilla-project.org/download.php?type=client

这里可以下到一个3.4.0的源码

解压后里面会有一个src/interface文件夹,里面有interface工程,使用此工程进行编译。注意这里直接编译的话是编译不过的,会有很多错误,因为filezilla工程依赖其他一些项目:

可以用记事本打开build文件看一下

FileZilla depends on the following libraries:

- wxWidgets 2.8.9 or greater

- libidn

- GnuTLS 2.8.3 or greater

- libdbus on *nix

windows下编译,必须先准备好前面三个东东。

1.下载wxWidgets 的一个windows版本

比如:http://sourceforge.net/projects/wxwindows/files/2.8.12/wxMSW-2.8.12-Setup.exe/download

解压后window工程在E:/workspace/wxMSW-2.8.12/build/msw

注意编译的时候选择unicode的配置,因为filezilla是要在unicode下编译的。我选择的是编译静态库版本。

编译时遇到错误:Cannot open include file: 'wx/setup.h': No such file or directory

E:/workspace/wxMSW-2.8.12/include/wx/msw/setup.h

拷贝至上一级目录

E:/workspace/wxMSW-2.8.12/include/wx/setup.h

即可解决

编译的工程有20个,会生成很多个lib,通通加到filezilla的工程链接依赖中。

2.下载GnuTLS

这里可以下到:http://josefsson.org/gnutls4win/

我下载的版本是gnutls-2.10.1.exe

下载后要去生成一个visual studio可以使用的lib文件

cmd下切换到安装后的bin目录

C:/Program Files/GnuTLS/bin>lib /def:libgnutls-26.def
使用上面的命令会在bin目录下生成libgnutls-26.lib,这个编译的时候用。
同时还有运行时需要的dll文件libgnutls-26.dlllibgcrypt-11.dlllibgpg-error-0.dlllibtasn1-3.dll
参考:http://josefsson.org/gnutls4win/
Using the GnuTLS DLL from your Visual Studio program这一节
3.下载GNU IDN Library - Libidn

这里可以下到:http://devlinux.net/software/gnu/libidn/

我下载的版本是libidn-1.9.tar.gz

这个文件解压之后会有一个win32目录,用里面的工程编译可以获得一个lib文件libidn.lib

 

注意要把这些库的include路径加到vc++include路径中。lib路径加到lib路径中。

最终我编译通过的依赖库列表是:

libgnutls-26.lib

libidn.lib

odbc32.lib

odbccp32.lib

comctl32.lib

wxbase28u.lib

rpcrt4.lib

wsock32.lib

../lib/engine_unicode.lib

Netapi32.lib

Winmm.lib

Ws2_32.lib

mpr.lib

wxmsw28u_core.lib

wxbase28u_xml.lib

wxmsw28u_xrc.lib

wxmsw28u_adv.lib

wxmsw28u_aui.lib

wxbase28u_net.lib

wxpng.lib

wxzlib.lib

wxregexu.lib

wxtiff.lib

wxmsw28u_dbgrid.lib

wxmsw28u_gl.lib

wxmsw28u_html.lib

wxmsw28u_media.lib

wxmsw28u_qa.lib

wxbase28u_odbc.lib

wxmsw28u_richtext.lib

wxexpat.lib

wxjpeg.lib

 

注意编译的时候一定看好code generation是不是选的/MD

这时候编译链接就过了。

接下来运行

还要注意把GnuTLS生成的dll拷贝到filezilla.exe目录下。

你可能感兴趣的:(windows,dll,include,library,interface,generation)