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

Qt项目集成QtNodes库遇C1189错误:需指定静态/动态链接方式

这个错误的核心原因是QtNodes库要求你明确指定链接静态库还是动态库,而你的项目中未定义对应的预处理器宏。

解决步骤

  • 若链接动态库(DLL):在项目中添加预处理器宏 QT_NODES_SHARED
  • 若链接静态库:在项目中添加预处理器宏 QT_NODES_STATIC

不同构建工具的具体操作

Qt Creator(QMake)

打开项目的 .pro 文件,添加对应宏定义:

# 动态库配置
DEFINES += QT_NODES_SHARED
# 静态库配置(注释掉上面一行,启用下面一行)
# DEFINES += QT_NODES_STATIC

CMake

在项目的 CMakeLists.txt 中,针对你的目标项目添加编译定义:

# 动态库配置
target_compile_definitions(你的项目名称 PRIVATE QT_NODES_SHARED)
# 静态库配置(注释掉上面一行,启用下面一行)
# target_compile_definitions(你的项目名称 PRIVATE QT_NODES_STATIC)

Visual Studio

右键项目 → 属性 → C/C++ → 预处理器 → 预处理器定义,添加对应的宏(QT_NODES_SHARED 或 QT_NODES_STATIC)

关键注意点

宏的定义必须和你构建QtNodes库时的配置完全匹配:

  • 若构建QtNodes时设置了 BUILD_SHARED_LIBS=ON(动态库),项目必须用 QT_NODES_SHARED
  • 若构建QtNodes时设置了 BUILD_SHARED_LIBS=OFF(静态库),项目必须用 QT_NODES_STATIC
    不匹配会导致后续链接错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:15:28