QT报错cannot find -lxxx(xxx为被调模型)和undefined reference to’_imp__ZN11/14xxx(xxx为自己定义)

关于解决QT报错cannot find -lxxx(xxx为被调模型)和undefined reference to’_imp__ZN11/14xxx(xxx同上)的一种方法

前情提要

我的项目分为计算模块(被调)和显示模块(调用),每一模块有对应的.c和.cpp文件。显示模块需要调用计算模块的方法。
而在我更改完计算模块的函数,在显示模块调用时出现了这个错。(每次被调模块修改时都已经执行过qmake和构建)

问题分析

应该是被调模块的头文件没有被调用模块正确包含,以及lib文件没有正确被使用。

解决方案

  1. 在调用模块的文件夹下新建一个文件夹,命名为“include”,专门用于存放被调模块的头文件。再在同一位置命名一个“lib”文件,用于存放被调模块生成的动态链接库。
  2. 点击“项目”,“Active Project ”中选择被调模块,勾选Shadow build,构建目录选择刚才新建的lib文件夹的路径。
  3. 在调用模块的.pro文件中添加两句话
    INCLUDEPATH += include
    LIBS += -Llib/debug -lxxx(xxx为被调模块名称)
    (注意:lib/debug 也可改为被调模块构建目录的绝对路径, 如果需要加载别的被调模块,只需要往后加 -lxxx)
  4. 将被调模块的头文件(.h)文件复制到调用模块的include文件夹中。
  5. 注意,每次对被调模块进行更改,都需要重新复制一遍更改后的头文件到include文件夹中。
  6. 以后再有调用时出现这个情况,要么就是复制被调模块头文件进调用模块的include文件夹。要么就是在第二步中把生成的.a .o .dll文件复制进调用模块的lib文件夹。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值