1. 程式人生 > >moc檔案生成方法,qt找不到moc_**.cpp

moc檔案生成方法,qt找不到moc_**.cpp

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檔案已經生成完畢。