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

Qt项目链接libirimager库的IRImager类出现未定义引用错误求助

搞定Qt项目链接libirimager库的问题

问题根源

你碰到的undefined reference to __imp__ZN3evo8IRImagerD1Ev这类报错,本质是链接器找不到IRImager类构造、析构函数的实现代码。Windows下DLL只是运行时依赖文件,编译链接阶段得靠对应的**导入库(.lib文件)**来解析符号,你只添加了DLL但未配置导入库的链接,自然会出现这类错误。

具体修正步骤

  • 确认导入库位置
    去sdk/x64目录查找,应该存在libirimager.lib(Release版)、libirimagerd.lib(Debug版),以及libirextras.lib、libirextrasd.lib这些导入库文件。如果找不到,可检查SDK其他目录或确认SDK包是否完整。

  • 修改.pro文件添加链接配置
    在thermovision_control_suite.pro中,针对Debug和Release模式分别配置对应的库链接:

    # 保留你已配置的头文件路径
    INCLUDEPATH += $$PWD/sdk
    DEPENDPATH += $$PWD/sdk
    
    # 链接库配置
    win32 {
        # Debug模式链接带d后缀的调试版库
        debug {
            LIBS += -L$$PWD/sdk/x64/ -llibirimagerd -llibirextrasd
        }
        # Release模式链接正式版库
        release {
            LIBS += -L$$PWD/sdk/x64/ -llibirimager -llibirextras
        }
    }
    

    其中-L指定库文件所在目录,-l后接库名(需去掉前缀lib和后缀.lib)。

  • 部署DLL文件
    编译完成后,将对应版本的DLL文件(libirimager.dll/libirimagerd.dll等)放到Qt程序的输出目录,或添加到系统PATH中,确保程序运行时能找到依赖的DLL。

额外注意事项

  • 编译器需匹配:如果SDK是用MSVC编译的,你的Qt项目也必须使用MSVC编译器,不能用MinGW,否则会出现库与编译器不兼容的链接问题。
  • 检查头文件导出声明:确认IRImager.h中的类是否带有__declspec(dllexport)/__declspec(dllimport)这类导出修饰,保证Qt能正确识别需要导入的符号。

内容的提问来源于stack exchange,提问作者a.wise

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:10:14