Michael Schmitt wrote:

> Angus,
> 
> using MinGW, I get tons of warnings like this one:
> 
> C:/msys/home/Brother/qt-3/include/private/qucom_p.h:393: warning: inline
> function 'virtual void QUType_int::clear(QUObject*)' is declared as
> dllimport: attribute ignored.

Me too. They're a PITA.

> I am quite sure that I didn't see such warnings a couple of days ago.
> Has it something to do with the recent configure changes (-DQT_DLL)?

Yes.

> What was the rationale behind these changes?

They are needed to build against the qt3.dll. See this code from qglobal.h:

#if defined(Q_OS_WIN)
#  if defined(QT_NODLL)
#    undef QT_MAKEDLL
#    undef QT_DLL
#  elif defined(QT_MAKEDLL)     /* create a Qt DLL library */
#    if defined(QT_DLL)
#      undef QT_DLL
#    endif
#    define Q_EXPORT  __declspec(dllexport)
#    define Q_TEMPLATEDLL
#    define Q_TEMPLATE_EXTERN
#    undef  Q_DISABLE_COPY      /* avoid unresolved externals */
#  elif defined(QT_DLL)         /* use a Qt DLL library */
#    define Q_EXPORT  __declspec(dllimport)
#    define Q_TEMPLATEDLL
#    ifndef Q_TEMPLATE_EXTERN
#      if defined(Q_CC_MSVC_NET)
#        define Q_TEMPLATE_EXTERN extern
#      else
#        define Q_TEMPLATE_EXTERN
#      endif
#    endif
#    undef  Q_DISABLE_COPY      /* avoid unresolved externals */
#  endif
#elif defined(Q_OS_LINUX) && defined(Q_CC_BOR)

Specifically, QT_DLL is used to specify the "__declspec(dllimport)"
attribute when lyx is built against qt3.dll. It may well be that if you're
linking statically then this will completely bugger things up for you. I
guess you'll see when you link.

If this does indeed mess things up for you, then we'll need to play around
with config/qt.m4 which contains this code:

 dnl Preprocessor flags
 case ${host} in
 *mingw*) QT_CPPFLAGS="-DQT_DLL -DQT_CLEAN_NAMESPACE -DQT_GENUINE_STR";;
       *) QT_CPPFLAGS="-DQT_CLEAN_NAMESPACE -DQT_GENUINE_STR";;
 esac
 AC_SUBST(QT_CPPFLAGS)

It may be that we need to refine the test to take account of your static
build options.

Angus


Reply via email to