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

CLion使用Cygwin构建项目报QUICKFIX_LIBRARY未找到错误如何解决

CLion 搭配 Cygwin 构建项目报 QUICKFIX_LIBRARY 未找到解决方法

核心报错信息

-- Found Boost: /usr/include (found version "1.66.0") found components: system thread regex iostreams chrono date_time atomic 
-- Configuring done
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
QUICKFIX_LIBRARY
    linked by target "run_engine" in directory /cygdrive/c/Users/33671/Desktop/main_program

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

报错本质是CMake配置阶段可以正常识别Boost依赖,但无法定位QuickFIX的库文件,导致构建文件生成失败,没有可执行文件产出,按以下步骤排查即可:

  • 第一步:校验Cygwin环境是否安装了QuickFIX
    打开Cygwin终端,执行查找命令:find /usr -name "*quickfix*"
    • 如果返回结果里没有libquickfix.dll.a、libquickfix.so这类库文件,说明环境没装对应依赖:直接运行Cygwin的setup安装程序,在包列表搜索quickfix勾选安装;如果源里没有对应包,就下载QuickFIX源码,在Cygwin终端内完成编译安装,默认安装后头文件在/usr/include/quickfix,库文件在/usr/lib。
    • 如果能查到库文件,记录下库文件的完整存放路径,比如返回/usr/local/lib/libquickfix.dll.a,就记下来库所在目录是/usr/local/lib。
  • 第二步:修正项目CMake配置
    打开项目根目录的CMakeLists.txt,定位查找QuickFIX的代码段:
    • 如果是用find_library命令查找QUICKFIX_LIBRARY,补全Cygwin下的库搜索路径,参考写法:
      find_library(QUICKFIX_LIBRARY
          NAMES quickfix QuickFIX
          PATHS /usr/lib /usr/local/lib
      )
      
    • 如果项目用了自定义的FindQuickFIX.cmake查找模块,确认模块内的搜索路径包含Cygwin的/usr/lib、/usr/local/lib类Unix路径,不要只配置Windows风格的盘符路径。
  • 第三步:调整CLion的CMake配置
    打开CLion设置,进入Build, Execution, Deployment > CMake配置页:
    • 在CMake options输入框内手动指定QuickFIX库路径,比如-DQUICKFIX_LIBRARY=/usr/lib/libquickfix.dll.a,如果同时提示找不到QuickFIX头文件,补充头文件路径参数:-DQUICKFIX_INCLUDE_DIR=/usr/include
    • 先删除项目根目录下的cmake-build-*构建缓存文件夹,再点击CMake面板的Reload CMake Project重新加载配置,不要复用旧的缓存文件。
    • 同步检查Toolchains配置,确认当前选中的Cygwin工具链路径正确,gcc、g++、make程序均来自Cygwin安装目录的bin文件夹,不要混用MinGW或MSVC的编译程序。
  • 第四步:特殊场景校验
    • 如果是自行编译的QuickFIX,必须在Cygwin终端环境下执行编译命令,不能在Windows CMD、PowerShell下编译,否则产出的库是MinGW/MSVC格式,Cygwin的GCC无法识别链接。
    • 确认QuickFIX库的编译位数和Cygwin环境位数一致,32位Cygwin不能链接64位版本的QuickFIX库,反之亦然。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:36:28