Добрый день.
при qxt сборке использовал следующие параметры:
configure -prefix Path -debug_and_release
nmake && nmake install
QT собирался со следующими параметрами (Qt 4.8.2):
(Предварительно подредактировал win32-msvc2008\qmake.conf
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
на
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
Не уверен, что это обязательно было делать при -static см.ниже)
configure -static -debug-and-release -opensource
nmake
Всё собралось отлично.
Cоответственно, плагин для интеграции с VS установлен и настроен на текущую версию (4.8.2)
Сырцы qt и qxt брал из:
http://dev.libqxt.org/libqxt/downloads - 0.6.2
http://qt.nokia.com/downloads/ - Qt libraries 4.8.2 for Windows (VS 2008, 234 MB)
Далее, создаем проект Qt Application в MSVC2008.
Настройку проекта делал по инструкции сайта сырцов qxt ну и + конечно \MT - релиз и \MDd -дебаг
#include <QxtListWidget>
...
QxtListWidget* lw = new QxtListWidget;
Выдает следующее:
1>test.obj : warning LNK4217: locally defined symbol ??0QxtListWidget@@QAE@PAVQWidget@@@Z (public: __thiscall QxtListWidget::QxtListWidget(class QWidget *)) imported in function "public: __thiscall test::test(class QWidget *,class QFlags<enum Qt::WindowType>)" (??0test@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z)
1>test.obj : warning LNK4217: locally defined symbol ??1QxtListWidget@@UAE@XZ (public: virtual __thiscall QxtListWidget::~QxtListWidget(void)) imported in function "public: virtual void * __thiscall QxtListWidget::`scalar deleting destructor'(unsigned int)" (??_GQxtListWidget@@UAEPAXI@Z)
1>QxtGui.lib(moc_qxtitemdelegate.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static struct QMetaObject const Qxt::staticMetaObject" (__imp_?staticMetaObject@Qxt@@2UQMetaObject@@B) referenced in function "void __cdecl `dynamic initializer for 'qt_meta_extradata_QxtItemDelegate''(void)" (??__Eqt_meta_extradata_QxtItemDelegate@@YAXXZ)
Если берем, например что-нибудь из QxtCore:
#include <QxtPipe>
...
QxtPipe* p = new QxtPipe
Выдает следующее:
1>test.obj : warning LNK4217: locally defined symbol ??0QxtPipe@@QAE@PAVQObject@@@Z (public: __thiscall QxtPipe::QxtPipe(class QObject *)) imported in function "public: __thiscall test::test(class QWidget *,class QFlags<enum Qt::WindowType>)" (??0test@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z)
1>test.obj : warning LNK4217: locally defined symbol ??1QxtPipe@@UAE@XZ (public: virtual __thiscall QxtPipe::~QxtPipe(void)) imported in function "public: virtual void * __thiscall QxtPipe::`scalar deleting destructor'(unsigned int)" (??_GQxtPipe@@UAEPAXI@Z)
- Нет ошибок, только предупреждения.
Да, и все проекты с использованием голого Qt работают отлично.