Look at the problem from the other side: 1) separate "moc_*.cpp" has to be compiled only during full [re]builds or when the corresponding class' header file is changed; 2) when "moc_*.cpp" is #include-d into the implementation .cpp file, they are both compiled at every change.
I think it's pretty obvious that (1) is better for debug/incremental builds because changes in the implementation .cpp file don't affect the moc-generated one, saving compilation time, while (2) is better for release/full builds as the compiler has to do much less work parsing headers #include-d by the class header file. And since debug builds are done much more often than release ones, I personally prefer keeping implementation and moc-generated code in separate files. On 02/19/2014 02:04 AM, Michael Jackson wrote: > I have what seems to be an obvious question/answer but the subtleties may not > be what I think they are. We have a project with about 500 files most of > which inherit from QObject or QWidget which means they all have moc run on > them. Currently I have each moc created file compiled as a separate object > which means for every class I have I am really compiling 2 files (.cpp and > mocXXXX.cxx). The compile times are starting to get "up there" a bit and I > was wondering what others do at this point? Do you simply do the #include > "moc_MyClass.cxx" in the .cpp file of MyClass? Does that really help speed up > the compile process? Before I go updating all of our source files I just > wanted to get a quick sanity check for this course of action from the Qt > community. > > Thanks for any advice. > Mike Jackson
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest