Я создал общую библиотеку, к которой я хочу получить доступ в другом подпроекте моего проекта. Общая библиотека имеет следующий .pro
файл
QT += qml quick widgets
CONFIG += qml_debug
CONFIG += c++11
TARGET = K_Report
TEMPLATE = lib
win32:CONFIG(release, debug|release): DESTDIR = $$PWD/../bin/release
else:win32:CONFIG(debug, debug|release): DESTDIR = $$PWD/../bin/debug
DEFINES += K_REPORT_LIBRARY
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES +=
HEADERS += \
k_report_global.h
unix {
target.path = /usr/lib
INSTALLS += target
}
RESOURCES += \
qml.qrc
В библиотеке также есть файл k_report_global.h
, который используется для создания общей библиотеки.
//k_report_global.h
#ifndef K_REPORT_GLOBAL_H
#define K_REPORT_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(K_REPORT_LIBRARY)
# define K_REPORTSHARED_EXPORT Q_DECL_EXPORT
#else
# define K_REPORTSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // K_REPORT_GLOBAL_H
Я создал qml-файл для тестирования
//Testfile.qml
import QtQuick 2.0
Rectangle {
width: 100
height: 100
color: "red"
border.color: "black"
border.width: 5
radius: 10
}
Я импортировал библиотеку в другой подпроект моего проекта со следующими строками кода:
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../K_Report/release/ -lK_Report
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../K_Report/debug/ -lK_Report
else:unix: LIBS += -L$$OUT_PWD/../K_Report/ -lK_Report
INCLUDEPATH += $$PWD/../K_Report
DEPENDPATH += $$PWD/../K_Report
Теперь я хочу использовать Testfile{}
в одном из файлов qml проекта, который использует общую библиотеку. QtCreator может разрешить все и находит Testfile{}
, но когда я пытаюсь запустить его, все падает. он говорит, что TestFile{}
не тип.