qt 部署 错误_QT项目PRO文件编译时找不到头文件错误

在国产Linux环境下部署QT开发的告警系统时,遇到源问题导致无法安装依赖。解决部署问题后,在编译PRO文件时碰到找不到头文件的错误。通过调整PRO文件中的配置,如添加QT+=Widgets指令,使用相对路径或删除.h后缀,成功解决编译错误。强调了灵活应用教程和避免生搬硬套的重要性。

QT项目PRO文件编译时找不到头文件错误

引言

近期在国产Linux操作下开发一个告警系统,用到QT做界面,部署QT环境遇到了困难,QT环境安装好了,编译时又遇到问题,灵机一动,最终解决问题。

部署环境遇到的困难主要在于找不到合适的源,这个Linux操作下有yum,但是用yum下载安装依赖的包时,提示文件找不到,trying other mirrow,根据网上的的提示把yum相关的一个配置文件删除后,直接提示no package,后来和同事讨论,这是源没有,不是yum软件的事,yum相当于一个客户端,它安装软件要从服务器上下载,源就是指存放包的服务器。后来客户给了个虚拟机,里面有环境才解决了部署问题。Linux的版本分裂确实头疼。

PRO文件

有了环境后,就要用代码试环境,从网上找了个文章,按步骤执行,步骤有:

1、用designer设计界面

2、用uic把界面ui转成代码文件

3、编写配套的对话框文件和主函数文件

4、用qmake -project生成pro项目文件

5、用qmake生成Makefile

6、用make生成可执行文件

这些步骤里比较重要的是第4步,它生成的项目文件,里面指定了有哪些文件参与编译,下面是个示例:

######################################################################

# Automatically generated by qmake (2.01a) ?? 7? 4 20:00:34 2017

######################################################################

TEMPLATE = app

TARGET =

DEPENDPATH += .

INCLUDEPATH += .

# Input

HEADERS += MyDlg.h untitled.h

FORMS += untitled.ui

SOURCES += main.cpp MyDlg.cpp

内容也好理解,app代表应用程序模板,路径没指定,头文件哪些,窗体界面是哪个,源代码文件哪些。

编译时找不到头文件错误

因为随意从网上找的参考文章,和环境不太一致,在第3步里指定的文件里有些包含头文件语句,比如:

#include

这样的代码行,编译就提示找不到头文件错误,没有这个文件,编译失败。

为了解决此问题,先是加指令,比如QT+=Widgets这样的指令,不行。

后来把绝对路径加上,也能通过,不报错。但是想着在profile里添加了环境变量,不应该用绝对路径啊,后来把.h去掉,编译就不报错了。

用.h也是网上作者的原文,这可能是作者写的比较早吧。所以要活学活用,不能生拉硬扯。

PRO文件的另外一个形式

SOURCES = addressbook.cpp \

main.cpp

HEADERS = addressbook.h

# install

target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/addressbook/part1

sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS part1.pro

sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/addressbook/part1

INSTALLS += target sources

这个比上面更简单,少了模板和路径部分,但肯定能用。因为是用代码动态创建的界面,里面没用FORMS来指定UI文件。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值