本人在编译的时候遇到以下问题:

说明:在基类LIBBase中继承了QObject类,在子类LIBTest中继承LIBBase,子类编译出错,如上图。
请各位大侠指教,谢谢!
代码很简单,如下:
lib_base.h
#if !defined _LIB_BASE_H_
#define _LIB_BASE_H_
#include <QString>
#include <QObject>
#if defined lIB_BASE_DLL
#define lIB_BASE_EXPORT __declspec(dllexport)
#else
#define lIB_BASE_EXPORT
#endif
class lIB_BASE_EXPORT LIBBase : public QObject
{
Q_OBJECT
public:
LIBBase();
~LIBBase();
public:
void test();
};
#endif
lib_base.cpp
#include "lib_base.h"
LIBBase::LIBBase()
{
}
LIBBase::~LIBBase()
{
}
void LIBBase::test()
{
QString str = tr("test base");
}
lib_base.pro
TEMPLATE = lib
TARGET = libbase
OBJECTS_DIR = ./obj
MOC_DIR = ./moc
SOURCES += lib_base.cpp
HEADERS += lib_base.h\
INCLUDEPATH += $$(QTDIR)/include
CONFIG += qt exceptions warn_on thread lib
DESTDIR = $$(DEPLOY_DIR)/bin/demo
unix:DEFINES += SOPHIC_UNIX UNIX_QMAKE
win32:DEFINES += SOPHIC_WIN32 WIN32
DEFINES += lIB_BASE_DLL
debug {
CONFIG -= release
}
release {
CONFIG -= debug
}
LANGUAGE = C++
LIBPATH += $$(DEPLOY_DIR)/bin/demo \
#The following line was inserted by qt3to4
QT += qt3support
lib_test.h
#if !defined _LIB_TEST_H_
#define _LIB_TEST_H_
#include <QString>
#include <QObject>
#include "lib_base.h"
#if defined lIB_TEST_DLL
#define lIB_TEST_EXPORT __declspec(dllexport) //bulid .so
#else
#define lIB_TEST_EXPORT
#endif
class lIB_TEST_EXPORT LIBTest : public LIBBase
{
Q_OBJECT
public:
LIBTest();
~LIBTest();
void test2();
};
#endif
lib_test.cpp
#include "lib_test.h"
LIBTest::LIBTest()
{
}
LIBTest::~LIBTest()
{
}
void LIBTest::test2()
{
QString str = tr("test lib");
}
lib_test.pro
TEMPLATE = lib
TARGET = libtest
OBJECTS_DIR = ./obj
MOC_DIR = ./moc
SOURCES += lib_test.cpp
HEADERS += lib_test.h
INCLUDEPATH += $$(QTDIR)/include \
$$(PROJECT_ROOT)/pas_demo/qobjecttest/libbase \
CONFIG += qt exceptions warn_on thread lib
DESTDIR = $$(DEPLOY_DIR)/bin/demo
unix:DEFINES += SOPHIC_UNIX UNIX_QMAKE
win32:DEFINES += SOPHIC_WIN32 WIN32
DEFINES += lIB_TEST_DLL
debug {
CONFIG -= release
}
release {
CONFIG -= debug
}
LANGUAGE = C++
LIBPATH += $$(DEPLOY_DIR)/bin/demo \
LIBS += -llibbase
#The following line was inserted by qt3to4
QT += qt3support
------解决思路----------------------
链接错误,找不到LibBase的库,你先看看你的库目录下有没有libBase的库
------解决思路----------------------
这是我自己测试的,编译通过
子类的.pro文件
QT -= gui
TARGET = libCore
TEMPLATE = lib
INCLUDEPATH += C:/Qt/project/libBase
LIBS += -LC:/Qt/project/build-libBase-Desktop_Qt_5_2_1_MSVC2012_OpenGL_64bit-Debug/debug -llibbase
DEFINES += LIBCORE_LIBRARY
SOURCES += libcore.cpp
HEADERS += libcore.h\
libcore_global.h
unix {
target.path = /usr/lib
INSTALLS += target
}
子类的头文件
#include "libcore_global.h"
#include "libbase.h"
class LIBCORESHARED_EXPORT LibCore : public LibBase
{
public:
LibCore();
};