我在以下目录中有一个应用程序:
\Application
\GUI
MainWindow.cpp
MainWindow.h
main.cpp
gui.pro
gui.pro.user
\folder1
file1.cpp
file1.h
\folder2
file2.cpp
file2.h
我的应用程序可以以两种模式运行:
- 从控制台
醇>
该版本有效。我有一个makefile来处理依赖项,因此我可以正常包含我的文件,因为它们位于同一目录中:
#include "file1.h"
而不是:
#include "../folder1/file1.h"
- 使用我的GUI
醇>
我的GUI在没有应用程序的情况下工作 - 我使用QtCreator编译它。
现在我想将GUI与应用程序结合起来。所以我扩展了 .pro 文件:
SOURCES += main.cpp\
Mainwindow.cpp \
..\folder1\file1.cpp \
..\folder2\file2.cpp \
HEADERS += Mainwindow.h \
MyTextEdit.h \
..\folder1\file1.h \
..\folder2\file2.h \
然而,当我运行qmake时,我收到以下错误:
file1.h:没有这样的文件或目录。
我对它进行了调查,结果证明编译器需要
#include "../folder1/file1.h"
而不是:
#include "file1.h"
好吧,我可以替换它,但我希望能够运行控制台版本。
我该如何解决? .pro文件不是makefile,所以我不能像在我的应用程序的控制台版本中的makefile中那样使用 INC 变量。
答案 0 :(得分:1)
您需要指定标题的完整路径,否则编译器不知道在哪里找到该文件。
为了防止这种情况,请在GUI的专业文件中添加以下行:
INCLUDEPATH += "../folder1/"
同时检查标题和源路径。似乎有一些缺失的斜线。
修改强>
我的完整工作gui.pro文件使用与上面给出的相同的文件夹结构。这样,简单的#include "file1.h"
就可以在gui代码的每个文件中使用。
TEMPLATE=app
TARGET=gui
QT += widgets
INCLUDEPATH += ../folder1/
FORMS += \
mainwindow.ui
HEADERS += \
mainwindow.h \
../folder1/file1.h \
../folder2/file2.h
SOURCES += \
mainwindow.cpp \
main.cpp \
../folder1/file1.cpp \
../folder2/file2.cpp