Fix build error with Intel Compiler 15 on Windows

If the constructor is inline, the generated code needs access to the
vtable, which gets emitted with the first virtual function (in QtGui),
but somehow icl.exe can't find it in debug. Looking at the .obj files it
generates and comparing to MSVC, it seems that:

 - both generate and export the inline constructor from Qt5Guid.dll
 - MSVC will call that constructor from qoffscreenintegration.obj
 - icl.exe will inline the constructor and requires a symbol not
   exported from Qt5Guid.dll

I can't explain why (probably a compiler bug).

Change-Id: I0ab9c078ae4fc794826025d68d364124c7247e80
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
This commit is contained in:
Thiago Macieira 2014-12-19 12:04:03 -08:00
parent 9d9b785259
commit acf80b9a2b
2 changed files with 4 additions and 0 deletions

View File

@ -49,6 +49,9 @@ QT_BEGIN_NAMESPACE
\brief The QPlatformServices provides the backend for desktop-related functionality.
*/
QPlatformServices::QPlatformServices()
{ }
bool QPlatformServices::openUrl(const QUrl &url)
{
qWarning("This plugin does not support QPlatformServices::openUrl() for '%s'.",

View File

@ -52,6 +52,7 @@ class QUrl;
class Q_GUI_EXPORT QPlatformServices
{
public:
QPlatformServices();
virtual ~QPlatformServices() { }
virtual bool openUrl(const QUrl &url);