AnsweredAssumed Answered

Generating "moc" files for Qt project (version of tools and library don't match)

Question asked by skstrobel on Jan 12, 2012
Latest reply on Jan 18, 2012 by skstrobel

I have a Qt project that compiles and runs fine using Qt Creator under Windows 7 and Ubuntu.  I am trying to also compile it for Blackfin.  I can run qmake from the command line and specify the linux-bfin-fdpic-g++ and with some tweaking of the project and qmake.conf files get most of the files to compile.  It chokes when it gets to the first "moc" (meta object compiler) file.  Such moc files are automatically created from the header files by Qt.  That works fine when the host and target platforms are the same (Windows or Ubuntu).  The problem comes in when I try to use the include files from the Blackfin uClinux distribution's version of Qt (V4.5.1) but the Qt toolchain running on the Ubuntu host (which includes the moc compiler) is V4.6.2.  I am getting error messages like this:

 

moc_mainwindow.cpp:14:2: error: #error "This file was generated using the moc from 4.6.2. It"

moc_mainwindow.cpp:15:2: error: #error "cannot be used with the include files from this version of Qt."
moc_mainwindow.cpp:16:2: error: #error "(The moc has changed too much.)"

So I am looking for the least-painful way of getting my Blackfin Qt library and moc compiler versions to match.  I can try to find the older version of Qt Creator for Ubuntu and downgrade it, but it seems really tacky to make my Blackfin project depend on the version of IDE that is installed.  Or I could try to upgrade the Qt library used on the Blackfin, but I don't really want to plow that road right now.  Is there any way to build the moc compiler for my Ubuntu host using the source code in the Blackfin uClinux distribution?  That would ensure that the moc compiler matched the version of the Blackfin Qt library.

 

Thanks for any suggestions.

Steve

Outcomes