Добрый день,
посмотрите свежим взглядом, я кажется уже все проверил и перепроверил, и все равно вылетает ошибка.
Создал sharedlib, и пытаюсь ее использовать, но при вызове члена класса вылетает ошибка undefined reference
проект библиотеки
CONFIG(debug, debug|release): TARGET = libvframe
CONFIG(release, debug|release): TARGET = libvframe
QT += core gui
TEMPLATE = lib
DEFINES += VFRAME30LIB_LIBRARY
# DESTDIR
unix {
CONFIG(debug, debug|release): DESTDIR = ../bin_unix/x86/debug
CONFIG(release, debug|release): DESTDIR = ../bin_unix/x86/release
}
SOURCES += vframe30lib.cpp \
videoframe.cpp
HEADERS += vframe30lib.h\
VFrame30Lib_global.h \
videoframe.h
Код тривиальный
// header
#ifndef VFRAME30LIB_H
#define VFRAME30LIB_H
#include "VFrame30Lib_global.h"
class VFRAME30LIBSHARED_EXPORT VFrame30Lib {
public:
VFrame30Lib();
void SecondTest();
};
#endif // VFRAME30LIB_H
// Source
#include "vframe30lib.h"
#include <QDebug>
VFrame30Lib::VFrame30Lib()
{
}
void SecondTest()
{
qDebug() << "Hello World from Lib!!!";
}
Библиотека компилится все складывается куда надо, если нет файла либы, то просект куда она подключается об этом говорит, дефайн VFRAME30LIBSHARED_EXPORT в либе определен.
подключение библиотеки
#VFrame30Lib
unix {
CONFIG(debug, debug|release): LIBS += -L../bin_unix/x86/debug -llibvframe
CONFIG(release, debug|release): LIBS += -L../bin_unix/x86/release -lvframe
}
DEPENDPATH += ../VFrame30Lib
INCLUDEPATH += ../VFrame30Lib
использование в коде
#include "vframe30lib.h"
...
VFrame30Lib l;
l.SecondTest(); ЗДЕСЬ вылетает ошибка error: undefined reference to `VFrame30Lib::SecondTest()'
Спасибо
Здравствуйте, Serhiy.Malokhatko, Вы писали:
SM>Код тривиальный
SM>SM>// header
SM>#ifndef VFRAME30LIB_H
SM>#define VFRAME30LIB_H
SM>#include "VFrame30Lib_global.h"
SM>class VFRAME30LIBSHARED_EXPORT VFrame30Lib {
SM>public:
SM> VFrame30Lib();
SM> void SecondTest();
SM>};
SM>#endif // VFRAME30LIB_H
SM>// Source
SM>#include "vframe30lib.h"
SM>#include <QDebug>
SM>VFrame30Lib::VFrame30Lib()
SM>{
SM>}
SM>void SecondTest()
SM>{
SM> qDebug() << "Hello World from Lib!!!";
SM>}
SM>
void VFrame30Lib::SecondTest() ?