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

Qt Creator使用QuickFIX库编译时出现LNK2019与LNK2001链接错误

解决Qt Creator + QuickFIX + MSVC2015 32位项目的LNK2019链接错误

我之前在搭建QuickFIX和Qt Creator的MSVC 2015 32位项目时,也碰到过一模一样的LNK2019未解析外部符号问题,针对FIX::DoubleConvertor::fast_strtod这个符号的缺失,给你整理几个亲测有效的解决方向:

  • 严格匹配QuickFIX库的编译环境
    这是最常见的原因:你必须确保所用的QuickFIX库是MSVC 2015 32位编译生成的,绝对不能混用MinGW编译的库或者64位版本。如果是自己编译QuickFIX,要确认构建工具链选的是MSVC2015 x86;同时还要对齐运行时库选项——如果Qt Creator项目用的是/MD(多线程DLL),那QuickFIX编译时也要选相同的/MD,不能一个用/MD一个用/MT(多线程静态),否则会出现符号不匹配。

  • 检查Qt Creator的链接配置
    打开Qt Creator的项目构建设置:

    1. 到链接器->输入->附加依赖项,确认已经添加了QuickFIX对应的库文件(比如quickfix.lib或quickfixmt.lib,根据你编译的库类型选择);
    2. 到链接器->常规->附加库目录,把QuickFIX库所在的路径添加进去,避免编译器找不到库文件。
  • 确认DoubleConvertor的编译开关
    QuickFIX里的fast_strtod是可选实现,部分编译配置下会被禁用:

    1. 查看QuickFIX的DoubleConvertor.h头文件,检查是否定义了FIX_USE_FAST_STRTOD宏;
    2. 如果没有,要么在Qt Creator项目的C++->预处理定义里添加FIX_USE_FAST_STRTOD,要么在编译QuickFIX时开启这个编译选项,确保fast_strtod的实现被编译进库中。
  • 清理重建项目
    有时候Qt Creator的缓存会导致奇怪的链接问题:直接删除项目的build目录,重新运行qmake,再进行全量编译。同时也要确保QuickFIX的库文件是最新编译的,没有残留旧版本的符号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 06:17:39