np43 / qextserialport

Automatically exported from code.google.com/p/qextserialport
Other
0 stars 0 forks source link

Patch for Qt 4.7x and 4.8 (qwineventnotifier_p.h) #105

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Compile an app using qextserialport on windows
2. includ file qwineventnotifier_p.h looks for a missing include file in 
""../../../src/corelib/kernel/qwineventnotifier_p.h"

What version of the product are you using? On what operating system?
4.7.x, 4.8.0, windows

Correction:
1) make sure to have the qt sources
2) change the file 
\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtCore\private\qwineventnotifier_p.h:
// #include "../../../src/corelib/kernel/qwineventnotifier_p.h"
#include 
"../../../../../../../QtSources/4.8.0/src/corelib/kernel/qwineventnotifier_p.h"

(note: change 4.8.0 to the Qt version you are using)

Original issue reported on code.google.com by droggen on 16 Sep 2011 at 12:09

GoogleCodeExporter commented 9 years ago
I have been going to the source tree and just placing that file in the 
\private\ subdirectory.  This this ok?  I will not need to pull the enitire 
source tree then.

Original comment by kenjustk...@gmail.com on 26 Sep 2011 at 12:24

GoogleCodeExporter commented 9 years ago
You need to get the entire source tree. If you are using the qt updater 
(whatever is the qt maintenance tool called) that's as simple as checking to 
install the source corresponding to the qt version you use.
The path 
"../../../../../../../QtSources/4.8.0/src/corelib/kernel/qwineventnotifier_p.h" 
*does* point to the place where the sources are installed.

Original comment by droggen on 3 Oct 2011 at 1:41

GoogleCodeExporter commented 9 years ago
Tried the patch, but got a lot of errors...
I downloaded the sources, made the changes (I hadn't a private folder in 
include/QtCore), and I'm still not able to compile my application.

Is it legal to call this .h this way ?
Do you plan to patch qextserialport not to use the disapeared .h or are you 
waiting for a revert on Qt development ?

Original comment by romain...@gmail.com on 6 Oct 2011 at 10:45

GoogleCodeExporter commented 9 years ago
1) are you under windows? I have Qt 4.8.0 (beta) and 4.7.x
There is a private directory as follows (for my install of qt to C:\QtSDK):
C:\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtCore\private

2) if you don't have this private directory, maybe you're having an older 
version of qt? or some other difference

3) anyway, whatever you do, do we agree that by default (without my patch) 
qwineventnotifier_p.h looks for another include which it doesn't find.
That file is located in the directory
C:\QtSDK\QtSources\4.8.0\src\corelib\kernel

you should modify the broken qwineventnotifier_p.h to point that file.

4) Summary. My file 
C:\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtCore\private\qwineventnotifier_p.h
looks as follows after modification:

//#include "../../../src/corelib/kernel/qwineventnotifier_p.h"
#include 
"../../../../../../../../QtSources/4.8.0/src/corelib/kernel/qwineventnotifier_p.
h"

5) obviously change 4.8.0 to whatever version of Qt you are using (e.g. 4.7.4)

Original comment by droggen on 7 Oct 2011 at 7:46

GoogleCodeExporter commented 9 years ago
1) I'm under Windows XP SP3. I use Qt 4.7.4. For my install I have
"C:\QtSDK\Desktop\Qt\4.7.4\mingw\include\QtCore" but no "private" folder.

2) I don't really know why... I have installed Qt the "default" way.

3) C:\QtSDK\QtSources\4.7.4\src\corelib\kernel\qwineventnotifier_p.h includes 
only :
"QtCore/qobject.h" and "QtCore/qt_windows.h".

Strange, isn't it ? =)

Original comment by romain...@gmail.com on 7 Oct 2011 at 10:37

GoogleCodeExporter commented 9 years ago
Strange :)

I'm using 4.8.0 and I need to double check for 4.7.4. 

Btw - in the meantime you may want to check/install 4.8 - it's in beta but it's 
very close to release. I didn't have any issue compiling some pretty large 
projects (but ymmv).

In any case it is "annoying" that we need the source tree. Before (4.6 or so) 
this qwineventnotifier_p.h was in the default distrib.

Somebody else has the same problem with 4.7.4?

Original comment by droggen on 7 Oct 2011 at 11:22

GoogleCodeExporter commented 9 years ago
Yes, I have 4.7.4 and I have the same problem with QSerialDevice compilation. 
autor of this lib suggested the next solution: 
http://www.qtcentre.org/threads/39876-Help-with-serial-Problem?p=183195#post1831
95

Original comment by remicol...@gmail.com on 15 Oct 2011 at 10:41

GoogleCodeExporter commented 9 years ago
Hello everyone,
Anyone want to try this version:

http://code.google.com/r/dbzhang800-qextserialport/

Helper class QextWinEventNotifier was provided, when QWinEventNotifier cannot 
be found, this class will be auto selected.

Original comment by dbzhang...@gmail.com on 10 Nov 2011 at 1:34

GoogleCodeExporter commented 9 years ago
I got the same issue when tried to build "qextserialport" with Qt 4.7.4 from 
"mingw-cross-env" (http://mingw-cross-env.nongnu.org/ - cross-toolchain builder 
for Linux).

To resolve this problem I downloaded header in question "qwineventnotifier_p.h" 
from here 
http://qt.gitorious.org/qt/qt/blobs/4.8/src/corelib/kernel/qwineventnotifier_p.h
 and put in into "/usr/i686-pc-mingw32/include/QtCore/private" (there was no 
"private" folder so I created it before pasting the header).

I mean there's no need to download entire source tree of whether Qt SDK or Qt 
Libs of more recent versions only to get desired header.

Hope this helps.

Original comment by alexey.b...@gmail.com on 10 Jan 2012 at 9:23

Attachments:

GoogleCodeExporter commented 9 years ago
I also have problem using  Qt_SDK_Win_offline_v1_1_2_en.exe with qserialdevice 
1.2.0(qserialdevice-qserialdevice-2.0.tar.gz). 
my step is like that:
1. change file
//#include "../../../src/corelib/kernel/qwineventnotifier_p.h"
#include 
"../../../../../../../../QtSources/4.8.0/src/corelib/kernel/qwineventnotifier_p.
h"
but the problem still exist
2. change qtsdk installer from QTSDK 1.1.4,QT ,QTSDK 1.1.2 but the problem 
still exist
3. downgrade to qserialdevice 0.4.0-> still problem
4. thank alex, after digging/searching using google for  an hour about the 
problem your solution that i have to copy qwineventnotifier_p.h from attachment 
to directory C:\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtCore\private and replace 
old file, Now the problem is gone. btw i am using windows 7 .thanks

Original comment by hendrieepis on 4 Mar 2012 at 7:39

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Thanks, same as issue 91.

Original comment by dbzhang...@gmail.com on 16 Mar 2012 at 8:20