Имеется скомпилированная библиотека в которой одна функция:
dynlib.h:#include <QString>
extern "C++" {
QString oddUpper(const QString& str);
}
dynlib.cpp:#include "dynlib.h"
QString oddUpper(const QString& str)
{
QString strTemp;
for (int i = 0; i < str.length(); ++i) {
strTemp += (i % 2) ? str.at(i) : str.at(i).toUpper();
}
return strTemp;
}
.pro:TEMPLATE = lib
DESTDIR = ..
QT -= gui
SOURCES = dynlib.cpp
HEADERS = dynlib.h
TARGET = dynlib
И есть программа которая должна использовать эту функцию:
app.cpp:#include <QtWidgets>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QLabel lbl("this is the example text");
QLibrary lib("dynlib");
typedef QString (*Fct) (const QString&);
Fct fct = (Fct)(lib.resolve("oddUpper"));
if (fct) {
lbl.setText(fct(lbl.text()));
}
else{
lbl.setText("DLL NOT FOUND!");
}
lbl.show();
return app.exec();
}
app.pro:TEMPLATE = app
QT += widgets
DESTDIR = ..
SOURCES = main.cpp
TARGET = MyApplication
Исполнительный файл программы находится там же где и либа, но сама программа библиотеку не видит.
Помогите разобраться. Я так понимаю, что нужно еще что то прописать в PRO файле моего приложения...