You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译FileZilla的libfilezilla组件:GnuTLS问题求助

FileZilla编译问题:GnuTLS检测失败与汇编错误解决

问题场景

按照《Windows下编译FileZilla 3》官方文档推进到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

configure报错:

configure: error: GnuTLS 3.7.0 or greater was not found. You can get it from https://gnutls.org/

即使已按文档安装GnuTLS仍无法检测到;重新编译GnuTLS时,出现大量汇编错误:

coff/aesni-x86_64.s:3508: Error: `leaq' is only supported in 64-bit mode
coff/aesni-x86_64.s:3510: Error: bad register name `%rax)'
...

解决步骤

1. 修复libfilezilla找不到GnuTLS的问题

  • 统一安装路径:编译GnuTLS时必须指定与libfilezilla相同的--prefix,确保所有依赖文件集中到同一目录:
    # 进入GnuTLS源码目录后执行
    ./configure --prefix="$HOME/prefix"
    make && make install
    
  • 配置环境变量:让libfilezilla的configure能识别到GnuTLS的头文件和库,执行libfilezilla的configure前先运行:
    export PKG_CONFIG_PATH="$HOME/prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
    export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
    export C_INCLUDE_PATH="$HOME/prefix/include:$C_INCLUDE_PATH"
    export CXX_INCLUDE_PATH="$HOME/prefix/include:$CXX_INCLUDE_PATH"
    
  • 重新执行libfilezilla的configure命令。

2. 修复GnuTLS编译时的汇编错误

这些错误是因为编译环境在32位模式下尝试编译64位汇编代码,需强制指定64位编译:

  • 设置编译工具链的64位模式:
    export CC="gcc -m64"
    export CXX="g++ -m64"
    
  • 指定64位目标平台:重新配置GnuTLS时添加平台参数(以MinGW-w64环境为例):
    ./configure --prefix="$HOME/prefix" --build=x86_64-w64-mingw32
    
  • 检查工具链版本:确保你使用的是64位编译工具(如mingw-w64-x86_64系列),而非32位的mingw32工具。

内容的提问来源于stack exchange,提问作者HerrimanCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:03:15