2012-06-08 14:29
qt 將源**交給標準 c++ 編譯器,如 gcc 之前,需要事先將這些擴充套件的語法去除掉。完成這一操作的就是 moc。
moc 全稱是 meta-object compiler,也就是「元物件編譯器」。qt 程式在交由標準編譯器編譯之前,先要使用 moc 分析 c++ 原始檔。如果它發現在乙個標頭檔案中包含了巨集 q_object,則會生成另外乙個 c++ 原始檔。這個原始檔中包含了 q_object 巨集的實現**。這個新的檔案名字將會是原檔名前面加上 moc_ 構成。這個新的檔案同樣將進入編譯系統,最終被鏈結到二進位制**中去。因此我們可以知道,這個新的檔案不是「替換」掉舊的檔案,而是與原檔案一起參與編譯。另外,我們還可以看出一點,moc 的執行是在預處理器之前。因為預處理器執行之後,q_object 巨集就不存在了。
在命令列下輸入moc yourfilename.h -o moc_youfilename.cpp生成不帶q_objent的原始檔。
qt中moc的作用
qt 將源 交給標準 c 編譯器,如 gcc 之前,需要事先將這些擴充套件的語法去除掉。完成這一操作的就是 moc。moc 全稱是 meta object compiler,也就是 元物件編譯器 qt 程式在交由標準編譯器編譯之前,先要使用 moc 分析 c 原始檔。如果它發現在乙個標頭檔案中包含了...
qt中moc的作用
qt 將源 交給標準 c 編譯器,如 gcc 之前,需要事先將這些擴充套件的語法去除掉。完成這一操作的就是 moc。moc 全稱是 meta object compiler,也就是 元物件編譯器 qt 程式在交由標準編譯器編譯之前,先要使用 moc 分析 c 原始檔。如果它發現在乙個標頭檔案中包含了...
qt中moc的作用
moc 就是 元物件編譯器 qt程式在交給標準編譯器預編譯之前要使用 moc 分析 c 原始檔 如果有巨集 q object,則生成乙個包含q object 巨集的實現 的c 原始檔 新生成的原始檔參與到標準編譯器的編譯中 編譯過程中如果找不到對應的moc檔案就會出現鏈結錯誤,此時要新增上對應的mo...