最近在把win下qt项目移到linux,编译时遇到了以上问题。环境:qt5.11,统信(uos):飞腾D2000。
在试过了网上说的一些办法后,无效果。在工程文件(.pro)中对文件路径,一模一样,路径对。
后尝试下面几种方法:(每种方法都可以解决部分问题,出现多处无法找到xx.h,每一处的解决方法不同)
(楼主的xx.h是自己的代码,不是第三库的xx.h)
- 在缺失的xx.h文件找到其所属的工程文件pro,右键点击 消除,再“构建xx”。若无错误提示,成功新构建了插件,over。
- 在1的基础上“构建xx”,出错,提示老问题no such file or directory #include"xx.h",删除build下debug的对应的旧插件,再按照1走一遍。
如:在b.cpp 中提示no such file or directory #include"a.h"
找到a.h所属工程文件(pro),确认导入路径没有错误后,右键 “消除”再“构建xx”,生成新的插件。返回b.cpp,右键“构建xx”新插件。该过程无错误提示,这解决了bug。
- 1,2都试过后,还不行。试过直接#include 绝对路径,发现没报错,说明导入机制是正常的。最后在导入的相对路径
INCLUDE +=$$PWD/../querybillplugin/quickquotedialog/
最后加一个“/”,如上面所示。至于原因,linux会在路径后面加一些空格???存疑。该bug就此解决