文件传输技术分享:Windows下编译FileZilla!

简介: 本文介绍了如何为FileZilla 3设置构建环境以及如何使用msys2在Windows下编译它,Msys2是一个cygwin环境。这些条件要求您运行64位Windows,对于完整的MSYS2系统和所有需要的依赖项,您将需要磁盘上的7GiB可用空间。

本文介绍了如何为FileZilla 3设置构建环境以及如何使用msys2在Windows下编译它,Msys2是一个cygwin环境。这些条件要求您运行64位Windows,对于完整的MSYS2系统和所有需要的依赖项,您将需要磁盘上的7GiB可用空间。

1.安装MSYS2环境
下载地址:http://www.msys2.org/

2.安装编译器工具链
FileZilla的shell扩展需要为32位和64位构建,因此我们需要32位和64位的编译器。

工具和编译器

第一次更新
启动MSYS2 MinGW 64位shell
pacman -Syu
关闭MSYS2 shell。
重复,直到没有更新。

安装工具和编译工具链

启动MSYS2 MinGW 64位shell,执行以下命令安装必要的包:
pacman -S autoconf automake libtool make mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain git svn

执行以下操作以解决工具链中一些烦人的错误

#修复windres缺少的平台前缀
[-f /mingw64/bin/x86_64-w64-mingw32-windres.exe] || ln -s /mingw64/bin/windres.exe /mingw64/bin/x86_64-w64-mingw32-windres.exe
[-f /mingw32/bin/i686-w64-mingw32-windres.exe] || ln -s /mingw32/bin/windres.exe /mingw32/bin/i686-w64-mingw32-windres.exe

设置环境

执行以下命令:
mkdir ~/prefix
echo 'export PATH="$HOME/prefix/bin:/mingw64/bin:/mingw32/bin:$PATH"' >> ~/.profile
echo 'export PKG_CONFIG_PATH="$HOME/prefix/lib/pkgconfig"' >> ~/.profile
echo 'export PATH="$HOME/prefix/bin:/mingw64/bin:/mingw32/bin:$PATH"' >> ~/.bash_profile
echo 'export PKG_CONFIG_PATH="$HOME/prefix/lib/pkgconfig"' >> ~/.bash_profile
重新启动MSYS2 MINGW64 shell。

构建依赖项
构建GMP

cd ~
curl -O https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
tar xf gmp-6.1.2.tar.xz
cd gmp-6.1.2
./configure --build=x86_64-w64-mingw32 --prefix="$HOME/prefix" --enable-shared --disable-static --enable-fat
make && make install

构建Nettle

cd ~
wget https://ftp.gnu.org/gnu/nettle/nettle-3.4.tar.gz
tar xf nettle-3.4.tar.gz
cd nettle-3.4
./configure --build=x86_64-w64-mingw32 --prefix="$HOME/prefix" --enable-shared --disable-static --enable-fat
make && make install

构建zlib

cd ~
wget https://zlib.net/zlib-1.2.11.tar.gz
tar xf zlib-1.2.11.tar.gz
cd zlib-1.2.11
LDSHAREDLIBC= ./configure --prefix="$HOME/prefix" -u=GNU
make && make install

构建GnuTLS

cd ~
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz
tar xf gnutls-3.5.19.tar.xz
cd gnutls-3.5.19
./configure --prefix="$HOME/prefix" --enable-shared --disable-static --build=x86_64-w64-mingw32 --with-included-libtasn1 --disable-doc --disable-guile --without-p11-kit --enable-local-libopts --disable-nls --with-included-unistring --disable-tests
make && make install

构建SQLite

cd ~
wget https://sqlite.org/2018/sqlite-autoconf-3250300.tar.gz
tar xf sqlite-autoconf-3250300.tar.gz
cd sqlite-autoconf-3250300
./configure --build=x86_64-w64-mingw32 --prefix="$HOME/prefix" --enable-shared --disable-static
make && make install

构建wxWidgets

cd ~
git clone --branch WX_3_0_BRANCH --single-branch https://github.com/wxWidgets/wxWidgets.git wx3
cd wx3
./configure --prefix="$HOME/prefix" --enable-shared --disable-static --enable-unicode --without-libtiff --without-libjpeg --with-expat=builtin --with-libpng=builtin
make && make install

构建libfilezilla

cd ~
svn co https://svn.filezilla-project.org/svn/libfilezilla/trunk libfilezilla
cd libfilezilla
autoreconf -i
./configure --prefix="$HOME/prefix" --enable-shared --disable-static
make && make install

构建Filezilla
下载FileZilla

cd ~
svn co https://svn.filezilla-project.org/svn/FileZilla3/trunk filezilla

构建FileZilla

cd ~/filezilla
autoreconf -i
./configure --with-pugixml=builtin
make

剥掉一些符号信息和调试信息

strip src/interface/.libs/filezilla.exe
strip src/putty/.libs/fzsftp.exe
strip src/putty/.libs/fzputtygen.exe
strip src/fzshellext/64/.libs/libfzshellext-0.dll
strip src/fzshellext/32/.libs/libfzshellext-0.dll
strip data/dlls/*.dll

3.构建安装程序

安装NSIS
http://nsis.sourceforge.net/下载并安装NSIS
编译安装程序脚本
在资源管理器中右键单击data / install.nsi,然后从上下文菜单中使用“编译NSIS脚本”。

4.故障排除

如果您遇到问题,请确保您已按照每个步骤完全按照说明进行操作,并确保您没有错过任何步骤。

相关文章
|
4月前
|
关系型数据库 MySQL 开发工具
windows编译poco c++库
windows编译poco c++库
|
2月前
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
138 0
|
4月前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
84 0
|
6月前
|
Go Windows
Go 交叉编译 跨平台编译(windows系统跨平台编译)
Go 交叉编译 跨平台编译(windows系统跨平台编译)
38 0
|
6月前
|
C++ Windows
masscan for windows windows编译masscan
masscan for windows windows编译masscan
160 0
masscan for windows windows编译masscan
|
7月前
|
JSON 开发工具 C++
Windows下用CMake编译JsonCpp及配置(适合新手)
Windows下用CMake编译JsonCpp及配置(适合新手)
291 0
|
7月前
|
API PHP C++
Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
268 0
|
6天前
|
存储 Linux 网络安全
都2023年了还不了解?使用FileZilla搭建信息文件服务器(Windows7)
都2023年了还不了解?使用FileZilla搭建信息文件服务器(Windows7)
|
7天前
|
计算机视觉 Windows
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
16 0
|
2月前
|
前端开发 Unix 开发工具
windows使用cygwin编译Xyce
windows使用cygwin编译Xyce
25 0