Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Problem with moc_* file
halftone last edited by
I use QT with vs2008, I suffered the following problem for quite a lot of times, never found the reason and the method to slove it.
Sometimes I write a new class with Q_OBJECT declared in it, the project runs well, then I do some changes to the class(very small changes), the moc_* file which the compiler generated is empty! so link error appears like this:
error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall MainWindow::metaObject(void)const " (?metaObject@MainWindow@@UBEPBUQMetaObject@@XZ)
So I remove all the changes, but the situation doesn't change, the moc_* file remains to be empty!
I really want to know why?! Thank you very much for any possible answer and attention!
Franzk last edited by
I haven't seen this behavior. What I do see often is
Adding a header file with Q_OBJECT in the class definition doesn't get visual studio to do the moc step
Adding or removing Q_OBJECT from the header file doesn't trigger the moc step
Remove and add the header file again works around both of these. Maybe you should try your luck on it :). If that fails and it's a non-proprietary project you could post it here (or somewhere at least) so people can have a look at the project settings. (zipped of course)
steno last edited by
I never have a problem with VS2008 when using the Qt addon. The addon is great, does the pre-build step for you and also adds the moc file to the project. It's worth checking out.