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

Ubuntu16.04.4 LTS下Python3编译QuickFIX包报错求助

解决Ubuntu 16.04.4 LTS下Python3安装QuickFIX时make报错的问题

你遇到的这个错误,本质是QuickFIX核心库与Python绑定代码版本不匹配导致的——SWIG生成的绑定代码QuickfixPython.cpp里调用了FIX::ScreenLog类不存在的getMillisecondsInTimeStamp()方法。下面给你几个可行的解决步骤:

1. 确保核心库与Python绑定代码版本完全同步

如果你是直接从GitHub克隆的QuickFIX仓库,大概率是编译时核心库代码和Python绑定的生成代码来自不同的版本分支/提交:

  • 先检查当前仓库的提交记录,确认所有代码同步:
    git log --oneline -n 5
    
  • 如果有不一致,切换到稳定的tag版本(比如v1.15.1,这个版本兼容性较好):
    git checkout v1.15.1
    
  • 重新执行编译前的准备步骤(比如./configure),再尝试make。

2. 重新生成Python绑定代码

QuickFIX的Python绑定是通过SWIG自动生成的,若生成的QuickfixPython.cpp和当前核心库不匹配,就会出现这类错误:

  • 进入QuickFIX的Python子目录:
    cd quickfix/python
    
  • 重新运行SWIG生成绑定代码:
    swig -c++ -python quickfix.i
    
  • 回到主目录,重新执行make和sudo make install。

3. 升级SWIG到兼容版本

Ubuntu 16.04默认的SWIG版本可能过低(比如2.0.x),而新版本QuickFIX需要3.0+的SWIG来生成正确的绑定代码:

  • 先卸载旧版本SWIG:
    sudo apt remove swig
    
  • 从源码编译安装适配Ubuntu 16.04的SWIG 3.0.12:
    wget http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz
    tar xzf swig-3.0.12.tar.gz
    cd swig-3.0.12
    ./configure --prefix=/usr/local
    make
    sudo make install
    
  • 验证安装成功:
    swig -version
    
    输出应显示版本为3.0.12。

4. 尝试使用pip预编译包(备选方案)

如果上述步骤太繁琐,也可以试试直接用pip安装适配Python3的QuickFIX包:

pip3 install quickfix==1.15.1

指定版本号能更好适配Ubuntu 16.04的系统环境。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:29:32