Bem Ansemo, pesquisei sua sugestão de uso da macros, na própria documentação da Qt tem exemplo:
http://doc.qt.nokia.com/4.8-snapshot/sharedlibrary.html
No entanto, eu acho que o plugin para o designer é uma dll “especial”, tentei utilizar este esquema sugerido pela documentação, mas no header do meu plugin, onde eu devo colocar a referencia ao segundo header, minhalib_global.h , já deve haver a referencia ao plugin, no meu caso:
#ifndef FOCUSLINEEDIT_H
#define FOCUSLINEEDIT_H
#include <QLineEdit>
#include <QObject>
#include <QtDesigner/QDesignerExportWidget>
class QDESIGNER_WIDGET_EXPORT focusLineEdit : public QLineEdit
{
Q_OBJECT
public:
focusLineEdit(QWidget *parent = 0);
~focusLineEdit();
signals:
void focusOut(bool hasFocus);
protected:
virtual void focusOutEvent(QFocusEvent *e);
};
#endif
Pela sugestão da documentação, deveria ser:
mysharedlib_global.h,
#include <QtCore/QtGlobal>
#if defined(MYSHAREDLIB_LIBRARY)
define MYSHAREDLIB_EXPORT Q_DECL_EXPORT
#else
define MYSHAREDLIB_EXPORT Q_DECL_IMPORT
#endif
Então, meu plugin seria:
#include "mysharedlib_global.h"
class MYSHAREDLIB_EXPORT focusLineEdit : public QlineEdit
Acho que este esquma serve para compilar uma ddl normal, mas para um plugin para o designer não.
A proposito, na documentação do Cmake também tem referencia a compilar dll:
http://www.cmake.org/Wiki/BuildingWinDLL