Qt工作筆記 moc的認識

2021-08-17 22:46:25 字數 525 閱讀 9623

qt 本身不是一種程式語言,它是c++編寫的乙個框架。通過使用乙個叫做moc (meta-object compiler)的預處理器來擴充套件標準的c++語言,從而實現訊號和槽等特性。qt編寫的程式可以使用clang、gcc、icc、mingw和msvc等多種標準c++編譯器進行編譯。

qt 將源**交給標準 c++ 編譯器,如 gcc 之前,需要事先將這些擴充套件的語法去除掉。完成這一操作的就是 moc。

moc 全稱是 meta-object compiler,也就是「元物件編譯器」。qt 程式在交由標準編譯器編譯之前,先要使用 moc 分析 c++ 原始檔。如果它發現在乙個標頭檔案中包含了巨集 q_object,則會生成另外乙個 c++ 原始檔。這個原始檔中包含了 q_object 巨集的實現**。這個新的檔案名字將會是原檔名前面加上 moc_ 構成。這個新的檔案同樣將進入編譯系統,最終被鏈結到二進位制**中去。因此我們可以知道,這個新的檔案不是「替換」掉舊的檔案,而是與原檔案一起參與編譯。另外,我們還可以看出一點,moc 的執行是在預處理器之前。因為預處理器執行之後,q_object 巨集就不存在了。

Qt工作筆記 QSort的基本使用

如下面這個 clock t start,finish double totaltime start clock qsort qstrvec.begin qstrvec.end finish clock totaltime double finish start clocks per sec qdeb...

SAP工作筆記

sap 筆記整理 sap筆記整理 1一 abap 開發部分 21 常用tcode se80 se38 se11 se10 se93 22 se11 是abap 字典,可以查詢資料庫欄位和儲存資訊。33 se10 用來查詢開發過的程式相關資訊。34 se93 用來發布程式,給程式乙個tcode.3 5...

工作筆記(二)

對 android系統源 情景分析 書中例子 在裝置驅動程式中 開啟裝置函式比如 freg open struct inode inode,sruct file filp 它的作用實質上就是將file這個檔案結構體中的空指標成員變數private data賦上你所要訪問的裝置的結構體的位址而已。以便...