【问题标题】:QTCreator : Use qt project into anotherQTCreator : 使用 qt 项目到另一个
【发布时间】:2013-01-14 10:34:09
【问题描述】:

我想知道如何在 QTCreator 中将 QT 项目用于另一个项目。 我用这个层次结构创建了一个子目录测试项目:

MainProject
  MainProject.pro
  ConsoleSubProject
    ConsoleSubProject.pro
    main.cpp
    firstclass.hpp
    firstclass.cpp
  GuiSubProject
    GuiSubProject.pro
    main.cpp
    mainwindow.hpp
    mainwindow.cpp

我想在 GuiSubProject 中使用 "firstclass" (ConsoleSubProject) 类。 为此,我在 GuiSubProject.pro 中添加了这一行:

include(../ConsoleSubProject/ConsoleSubProject.pro)

当我尝试构建项目时,它给了我错误:

MainProject/GuiSubProject/mainwindow.hpp:4: error: QMainWindow: No such file or directory

如果您对如何将项目类用于另一个项目有任何想法?

问候

【问题讨论】:

  • mainwindow.hpp 的第 4 行是什么?
  • 我有#include
  • 你在GuiSubProject.pro 中有QT += gui 用于Qt 包含路径?
  • 是的,我有 QT += core gui
  • 如果你有 QT -= guiConsoleSubProject.pro 中,请注意GuiSubProject.pro 中的include(../ConsoleSubProject/ConsoleSubProject.pro) 在哪里

标签: qt project qt-creator


【解决方案1】:

你可以这样做:

MainProject/common.pri

    INCLUDEPATH  += $$PWD/ConsoleSubProject
    SOURCES      += $$PWD/ConsoleSubProject/firstclass.cpp
    HEADERS      += $$PWD/ConsoleSubProject/firstclass.hpp

MainProject/ConsoleSubProject/ConsoleSubProject.pro

    include(../common.pri)
    QT += core
    SOURCES      += main.cpp

MainProject/GuiSubProject/GuiSubProject.pro

    include(../common.pri)
    QT += core gui
    SOURCES      += main.cpp mainwindow.cpp
    HEADERS      += mainwindow.hpp

【讨论】:

  • 行得通!非常感谢 !!只是最后一个简单的问题。当我创建一个新文件时,我需要手动将文件添加到 common.pri ?
  • 您可以在向导中使用 Qtcreator 直接将文件添加到公用文件夹(右键单击公用文件夹 > 添加新的),您可以选择要添加文件的项目
  • 好的,但是如果我想将文件添加到 ConsoleSubProject 并在 GuiSubProject 中重用它?
  • 在向导中添加新文件时,在最后一个窗口中可以选择beetween ConsoleSubProject.pro 或common.pri(总结部分你有组合)doc.qt.digia.com/qtcreator-2.4/images/…
【解决方案2】:

而不是你的 GuiSubProject.pro 中的 include(../.....) 它应该是

    INCLUDEPATH    = ../ConsoleSubProject

【讨论】:

  • 我已经尝试过了,但我不能使用该类:架构 x86_64 的未定义符号:“FirstClass::FirstClass()”,引用自:MainWindow::MainWindow(QWidget*)in mainwindow.o
猜你喜欢
  • 2019-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
  • 2021-11-18
  • 1970-01-01
  • 2011-07-31
  • 2020-08-16
相关资源
最近更新 更多