Qt один проект знает классы других

Попробовал «связать» два проекта вместе. Таким образом, один проект знает классы других. Один проект — это программа, другой — тестовая программа для первого. Поэтому я хочу, чтобы у тестовой программы был доступ к другим классам, чтобы я мог их протестировать.

Оба проекта являются подпроектами.
Они размещены под заголовком проекта, там папки находятся рядом друг с другом.

Пробовал много разных способов, но безрезультатно.

Head.pro

TEMPLATE = subdirs

SUBDIRS += \
MT \
Test

MT.pri та же папка, что и программа.

INCLUDEPATH  += $$PWD
SOURCES      += $$PWD/parser.cpp
HEADERS      += $$PWD/parser.h

MT.pro

QT       += core bluetooth gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = MT
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG += mobility

SOURCES += main.cpp\
mainwindow.cpp \
t.cpp \
parser.cpp \
devicediscovery.cpp

HEADERS  += mainwindow.h \
parser.h \
devicediscovery.h \
t.h \
typedefs.h

FORMS    += mainwindow.uiMOBILITY =

INSTALLS += target

DISTFILES += \
MT.pri

Test.pro

include(../MT/MT.pri)
QT       += widgets testlib core bluetooth gui

TARGET = tst_testmttest
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

HEADERS += parser.h
SOURCES += tst_testmttest.cpp / parser.cpp
DEFINES += SRCDIR=\\\"$$PWD/\\\"

1

Решение

Использование в тестовом проекте:

include(Path/to/OtherProject/file.pri)

Использование в другом проекте

QT       += xml
INCLUDEPATH  += $$PWD
SOURCES      += $$PWD/parser.cpp
HEADERS      += $$PWD/parser.h

работает отлично

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]