[Interest] Failed to make moc for cpp source file.
Bo Thorsen
bo at vikingsoft.eu
Tue Feb 10 12:35:35 CET 2015
Den 10-02-2015 kl. 10:30 skrev Igor Mironchik:
> Hi. I ran into a problem.
>
> When building project for Android target, build doesn't make moc for a cpp
> file and compilation failed.
>
> In that cpp I have Q_OBJECT and #include "messagebox.moc"
>
> In Makefile generated I have:
>
> mocables: compiler_moc_header_make_all compiler_moc_source_make_all
>
> compiler_moc_source_make_all: .moc\messagebox.moc
>
> But I got:
>
> ..\..\..\Mobile\QtMWidgets\src\messagebox.cpp:622:26: fatal error:
> messagebox.moc: No such file or directory
> #include "messagebox.moc"
> ^
> compilation terminated.
Hi Igor,
I was just working on a fix for a qmake bug that involves exactly this
case. In my bug there was a place in the code that said "foo""bar" and
the workaround is to do "foo" "bar" (notice the space between the two
strings). It's bug 17533 in the Qt bugtracker.
I guess you hit a bug related this.
You can check if you are hit by a similar bug. Check the Makefile and
look for the rule to build messagebox.o - it has to list messagebox.moc
at the end of the list of dependency files. If it's not there, your moc
file won't be built.
Unfortunately I can't tell you how to work around it, if it is the same
problem, because there might be other ways to trigger it. The way I
would work around this is to remove almost all the code in the file and
see if you can get the moc file to show up as a dependency and then
re-add the code until it disappears from the list. Then you can find the
place where your code stops the moc dependency check from working and
try to find a way to work around it.
For reference, my Makefile.Debug on Windows has this in the file:
####### Compile
debug\main.obj: main.cpp ..\build-5.4\include\QtCore\QtCore \
..\build-5.4\include\QtCore\QtCoreDepends \
debug\main.moc
I just saw your second message on this, and you don't get the Makefile.
So I don't know if this is helpful at all. But the dependency check in
qmake should be the same for your project generator, so it could be.
Bo Thorsen,
Director, Viking Software.
--
Viking Software
Qt and C++ developers for hire
http://www.vikingsoft.eu
More information about the Interest
mailing list