在这种情况下如何正确使用 qmake
How to use qmake properly in this case?
我在以下目录中有一个应用程序:
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在没有应用程序的情况下工作 - 我使用QtCreator编译它。
现在我想将我的 GUI 与应用程序结合起来。所以我扩展了 .pro 文件:
SOURCES += main.cpp
Mainwindow.cpp
..folder1file1.cpp
..folder2file2.cpp
HEADERS += Mainwindow.h
MyTextEdit.h
..folder1file1.h
..folder2file2.h
但是,当我运行qmake时,出现以下错误:
file1.h:没有这样的文件或目录。
我调查了一下,结果发现编译器期望
#include "../folder1/file1.h"
而不是:
#include "file1.h"
好吧,我可以替换它,但我也希望能够运行控制台版本。
我该如何解决它?.pro 文件不是生成文件,因此我不能像在应用程序的控制台版本中的生成文件中那样使用 INC 变量。
您需要指定标头的完整路径,否则编译器不知道在哪里可以找到该文件。
为了防止这种情况,请在 GUI 的 pro-File 中添加以下行:
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
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- CMake-按正确顺序将项目与C运行时对象文件链接
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- 如何使用用户输入在C++中正确填充2D数组
- node-gyp 在 macOS 上未正确链接库
- C++从另一个类访问公共静态向量的正确方法是什么
- 如何在 C 中正确使用 libiconv 使其不会报告"Arg list too long"?
- 为什么我的for循环不能正确获取argv
- 如何取消对nullptr的屏蔽,返回正确的对象
- AES加密到解密未正确输出
- 使用C++程序合并排序没有得到正确的输出
- 在 c++ 中拥有一组结构的正确方法是什么?
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 使用2个键的cpp-stl::优先级队列排序不正确
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 在'如果'陈述输出如何正确
- 在这种情况下如何正确使用 qmake
- 我可以要正确的qmake,但qt错了吗