У меня куча проблем с простой задачей связать DLL с моим проектом Qt.
Мои шаги:
calc
метод к моему mylibrary.h.calc
метод в моем mylibrary.cpp..a
а также .dll
файлы были созданы.C:/Users/Me/includes
, так же как MyLibrary.dll
а также libMyLibrary.a
в C:/Users/Me/
,Я добавляю путь включения, а также путь к DLL:
INCLUDEPATH += "C:/Users/Me/includes"LIBS += "C:/Users/Me/MyLibrary.dll"
Затем я иду в мой mainwindow.cpp
и поместите этот код:
#include "mainwindow.h"#include "ui_mainwindow.h"
#include <QDebug>
#include "mylibrary.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
MyLibrary myLib;
qDebug() << myLib.calc();
}
MainWindow::~MainWindow()
{
delete ui;
}
И конечно, я получаю неопределенные ошибки:
C:\Users\Me\Desktop\TestInternals-Win\..\TestInternals\mainwindow.cpp:15: error: undefined reference to `_imp___ZN13MyLibrary4calcEv'
C:\Users\Me\Desktop\TestInternals-Win\..\TestInternals\mainwindow.cpp:15: error: undefined reference to `_imp___ZN13MyLibrary4calcEv'
:-1: error: collect2: ld returned 1 exit status
mylibrary.h содержание:
#ifndef MYLIBRARY_H
#define MYLIBRARY_H
#include "MyLibrary_global.h"
class MYLIBRARYSHARED_EXPORT MyLibrary{
public:
MyLibrary();
int calc();
};
#endif // MYLIBRARY_H
mylibrary.cpp содержание:
#include "mylibrary.h"
MyLibrary::MyLibrary()
{
}
int calc()
{
return 5;
}
Я не трогал сгенерированный Qt файл MyLibrary_global.h
Спасибо за любую помощь.
Вы определяете одиночество calc
функция вместо MyLibrary::calc
, пытаться:
mylibrary.cpp
#include "mylibrary.h"
MyLibrary::MyLibrary()
{
}
int MyLibrary::calc()
{
return 5;
}
Других решений пока нет …