在这种情况下如何正确使用qmake?

时间:2016-02-25 08:15:21

标签: c++ qt makefile qt-creator qmake

我在以下目录中有一个应用程序:

\Application
   \GUI
      MainWindow.cpp
      MainWindow.h
      main.cpp
      gui.pro
      gui.pro.user
  \folder1
      file1.cpp
      file1.h
  \folder2
      file2.cpp
      file2.h

我的应用程序可以以两种模式运行:

  
      
  1. 从控制台
  2.   

该版本有效。我有一个makefile来处理依赖项,因此我可以正常包含我的文件,因为它们位于同一目录中:

#include "file1.h"

而不是:

#include "../folder1/file1.h"
  
      
  1. 使用我的GUI
  2.   

我的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 变量。

1 个答案:

答案 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