Qt 程序在交由標準編譯器編譯之前,先要使用 moc 分析 C++ 源文件。如果它發現在一個頭文件中包含了宏 Q_OBJECT,則會生成另外一個 C++ 源文件。這個源文件中包含了 Q_OBJECT 宏的實現代碼。這個新的文件名字將會是原文件名前面加上 moc_ 構成。這個新的文件同樣將進入編譯系統,最終被鏈接到二進制代碼中去。因此我們可以知道,這個新的文件不是“替換”掉舊的文件,而是與原文件一起參與編譯。
vs2010集成Qt後,編譯無法生成moc文件,此時可以採用手動方式生成:
在命令行下輸入moc yourfilename.h -o moc_youfilename.cpp生成不帶Q_OBJENT的源文件。
下面給出例子手動生成moc的例子:
1、首先在運行窗口中輸入cmd
2、在cmd中輸入:cd C:\Qt\4.7.4\bin進入Qt安裝目錄,如下圖:
3、輸入:moc "E:\03 Code\QUnitTest\DlgFindDialog.h" -o "E:\03 Code\QUnitT
est\moc_DlgFindDialog.cpp" 後回車
4、打開E:\03 Code\QUnitTest,moc_DlgFindDialog.cpp已經生成
5、到此moc文件已經生成完畢。
轉;http://blog.sina.com.cn/s/blog_a459dcf50101ded1.html