Проблема библиотеки Qt: Невозможно связать созданную мной динамическую библиотеку с проектом - PullRequest
0 голосов
/ 24 марта 2019

Я создал динамическую библиотеку c ++ от создателя qt. и когда я пытаюсь реализовать его в приложении qwidget для тестирования. Я получаю некоторые ошибки. Пути включения и библиотеки должны быть правильными. так как у меня есть .a файл, который нужен qt и путь включения тоже правильный.

Файл .pro моего проекта:


QT += core gui multimedia

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testlib2
TEMPLATE = app

DEFINES += QT_DEPRECATED_WARNINGS

#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0

CONFIG += c++11

SOURCES += 
main.cpp 
mainwindow.cpp

HEADERS += 
mainwindow.h

FORMS += 
mainwindow.ui

Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

unix|win32: LIBS += -L$$PWD/../build-tonegenlib-Desktop_Qt_5_12_1_MinGW_64_bit-Debug/debug/ -ltonegenlib

INCLUDEPATH += $$PWD/../tonegenlib
DEPENDPATH += $$PWD/../tonegenlib

и ошибка компиляции такая;

debug/mainwindow.o: In function MainWindow::MainWindow(QWidget*)': C:\QT_workspace\build-testlib2-Desktop_Qt_5_12_1_MinGW_64_bit-Debug/../testlib2/mainwindow.cpp:6: undefined reference to__imp__ZN10TonegenlibC1Ev'
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [Makefile.Debug:69: debug/testlib2.exe] Error 1
mingw32-make: *** [Makefile:38: debug] Error 2
mingw32-make[1]: Leaving directory 'C:/QT_workspace/build-testlib2-Desktop_Qt_5_12_1_MinGW_64_bit-Debug'
01:29:22: The process "C:\Qt\Qt5.12.1\Tools\mingw730_64\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project testlib2 (kit: Desktop Qt 5.12.1 MinGW 64-bit)
When executing step "Make"
01:29:22: Elapsed time: 00:01.

это заголовочный файл проекта;


#include <QMainWindow>
#include <tonegenlib.h>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();

Tonegenlib tonegen;



void test();
private:
Ui::MainWindow *ui;
};

а это .cpp


void MainWindow::test()
{
tonegen.m_freq = 240;
tonegen.playAudio();

}

когда я добавляю библиотеку и собираю проект без кода библиотеки, он компилируется без ошибок но когда я пытаюсь вызвать функцию, она ломается. Большое спасибо за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...