我知道这是很多用户已经触及过的话题,但我找不到有效的解决方案;我有两个用QtDesigner创建的表单文件:
interfaccia_test.ui interfaccia.ui
我启动qmake -project
命令获取以下.pro
文件:
TEMPLATE = app
TARGET = qtgeo
INCLUDEPATH += . include
# Input
HEADERS += interfaccia.h include/localizzazione.hpp
FORMS += interfaccia.ui interfaccia_test.ui
SOURCES += interfaccia.cpp main.cpp src/localizzazione.cpp
src/SimpleSIFT.cpp
所以我提供了qmake
命令,但它并没有像我预期的那样生成ui_interfaccia.h
和ui_interfaccia_test.h
;然后我尝试make
我的项目,我有
interfaccia.h:19:28: fatal error: ui_interfaccia.h: File o directory not found
#include "ui_interfaccia.h"
^
interfaccia.h
我的文件使用我制作的GUI。
答案 0 :(得分:3)
对于任何给定的项目,您应该只使用qmake -project
一次。如果您有一堆文件并希望获得项目模板,那么它就是一个起点。然后,这个模板将被人类修改 - 你。
构建基于qmake的Qt项目的常规方法是:
qmake
make
ui_xxx.h
文件由make
生成,而不是qmake
。以下列出了各种工具的功能:
qmake -project
生成.pro
文件模板供您修改以适应项目。在您的项目开始之后,最终用户或您不应该使用它。确保.pro
文件保持最新状态是您的工作。qmake
或cmake
生成构建系统的makefile。make
或ninja
构建项目,生成所有其他文件。还有两点:
如果您已经包含了无法生成的文件,则qmake无法生成ui_xxx.h
文件。因此,例如,如果它生成了一个名为ui_Interfaccia.h
的文件,但您已包含ui_interfaccia.h
,那么该文件的名称也不会生成具有正确名称的文件。
即使您在不区分大小写的操作系统/文件系统上构建所有内容,这也很重要。
您包含错误名称的文件。正确的名称是ui_ClassName.h
,其中ClassName
是.ui文件中的类名(查看前几行),具有相同的大小写。