QMouseEvent no such file or directory when header is included in another file
-
Hello,
I have a header StdAfx.h file with a lot of include. Among them, I have#include <QMouseEvent>
#include <QPainter>
#include <QSerialPort>And everything works fine. However, if I include this StdAfx.h into another header LtUtil.h that just defines several functions, I have several compilation error
StdAfx.h:41: error: C1083: Cannot open include file: 'QMouseEvent': No such file or directoryIf I add QtGui/QMouseEvent it works and stop on the next include.
Why do including my header prevents me from using the short #include <QMouseEvent> ?
-
Hmm
Maybe path are wrong when seen from StdAfx.h
Is that not the normal visual studio common include?Also depends on the project settings, include paths etc.
It should not prevent the use of
#include <QMouseEvent>
in any case.Are you using Qt4?
-
Im using qt 5.7.1 on Linux (Fedora) and Qt 5.7.0 on Windows 7 (same behavior)
StdAfx is indeed usually something created by Visual Studio, but the person that created the code structure is long gone, so I dont really know why evertyhing is in a separate header and in a separate folder.
edit : if I include StdAfx in my cpp instead of my header, everything is fine, so I guess I'll move the inlines function to the .cpp aswell.
But I still dont understand why it messes up with Qt include -
stdafx.h
is usually intended to be a precompiled header, so it should be included as first thing in the .cpp files, not in headers.
As to why your problem happens - this type of error usually means that the header you're includingstdafx.h
in or the file itself is not included in the project or is included in a project that doesn't use that Qt library (i.e. doesn't have that module in the .pro file or the include paths are not set correctly in the visual studio project, whichever you're using).