June 25, 2013

Westley Westley
Lab Rat
8 posts

Qt 5.0.2 on 64-bit Windows 7 and moc issue

 

I am a Qt novice and inherited a running Qt app (Qt SDK 4.8) based on Linux and told to port in to 64-bit Windows 7 using MS VS2012. I downloaded Qt 5.0.2 and after making decent progress ran into a obstacle I can’t figure out. The moc app generates a .cpp file which contains:

#if !defined(Q_MOC_OUTPUT_REVISION)
#error “The header file ‘mhnodegui.h’ doesn’t include <QObject>.”
#elif Q_MOC_OUTPUT_REVISION != 63
#error “This file was generated using the moc from 4.8.2. It”
#error “cannot be used with the include files from this version of Qt.”
#error “(The moc has changed too much.)”
#endif

The curious thing is that under Qt 5.0.2, Q_MOC_OUTPUT_REVISION is defined as 67 yet the actual moc.exe which is installed with the distribution is 63, the one from Qt 4.8.4. The end result is that I can’t compile the moc generated file. I tried changing the definition of Q_MOC_OUTPUT_REVISION to 63 as an experiment to force the compilation to continue with numerous fatal compilation errors. It would appear to me that there is some inconsistency in the 5.0.2 64-bit distribution with respect to moc but, as a total novice, I am sure the problem is something I’m doing but have no idea what.

8 replies

June 25, 2013

Jeroentje@home Jeroentje@ho..
Dinosaur Breeder
851 posts

Hi,
This is maybe more a tools forum thing. Maybe move this post to get better answers?! IYAM what you describe is indeed strange. Did you do a clean install and do you use the latest qt creator to go along with it? It got messed up at my station before causing strange behavior while compiling. It used the qmake of a different qtCreator etc.
Greetz

 Signature 

Greetz, Jeroen

June 25, 2013

Westley Westley
Lab Rat
8 posts

I downloaded and installed Qt 5.0.2 on a PC that had never had any Qt software of any kind previously installed.

June 25, 2013

Jeroentje@home Jeroentje@ho..
Dinosaur Breeder
851 posts

Hmm, then it might be a compile error on compiling Qt. Enter a bug report I would suggest

 Signature 

Greetz, Jeroen

June 25, 2013

Westley Westley
Lab Rat
8 posts

I downloaded the binary package and so did not compile Qt. Could that be my problem?

June 25, 2013

Jeroentje@home Jeroentje@ho..
Dinosaur Breeder
851 posts

No, that shouldn’t be the issue. The SDK’s on the top of the download page should be ready without compiling the Qt sources.

 Signature 

Greetz, Jeroen

June 25, 2013

SGaist SGaist
Mad Scientist
8912 posts

Hi,

Does your codebase contain moc files ? If so, delete them all and rebuild all

 Signature 

Need programers to hire ? www.edeltech.ch

June 26, 2013

Westley Westley
Lab Rat
8 posts

Problem resolved but still confused about something. Lets call the .cpp file generated by moc.exe moc_x.cpp. I didn’t realize until today that the file is output in my designated ‘debug’ directory along with obj files etc. However, there is a copy of moc_x.cpp in the directory which contains the other source files and that file was left over from the previous engineer who had worked with Qt 4.8.4. I was looking at that old file and thinking I was looking at the latest moc output, thus my confusion. The debug/moc_x.cpp was created correctly and referenced the latest version of moc. I was further confused when the latest moc_x.cpp caused the compiler to run out of heap space and I jumped to the conclusion that something was very wrong. Turns out all I had to do was increase the amount of heap space allocated to the VS 2012 compiler (QMAKE_CXXFLAGS += /Zm2000) and the compilation continued to a successful conclusion. Thanks for the help.

June 26, 2013

SGaist SGaist
Mad Scientist
8912 posts

Confusing indeed, It’s seems unusual that you need to increase the heap space allocation. You might want to check that on the mailing list (where the developers/maintainers are).

Don’t forget to remove the moc files from your sources, they really shouldn’t be there.

 Signature 

Need programers to hire ? www.edeltech.ch

 
  ‹‹ How to use plugin?      [SOLVED] QT Creator Debugger Running Really Slow ››

You must log in to post a reply. Not a member yet? Register here!