引用標頭檔案卻找不到相對應的類

2021-07-15 12:15:43 字數 593 閱讀 4981

問題關鍵出現在標頭檔案中,出現了定義衝突

#ifndef mainwindow_h

#define mainwindow_h

#endif // mainwindow_h

每個標頭檔案的開始和結束除會引用如下預處理器變數,而且該變數在程式中是唯一的,主要用來避免多重包含,可是如果你的預處理器變數名重複了 就會發生一些我們不希望的事情。像下面這種情況:

#ifndef mainwindow_h

#define mainwindow_h

class mainwindow;

#endif // mainwindow_h

#ifndef mainwindow_h

#define mainwindow_h

class first;

#endif // mainwindow_h

兩個類 mainwindow和first,使用了一樣的預處理器變數,再引用這兩個類的cpp檔案中,就認為你重複包含而忽略其中乙個標頭檔案。

最容易被忽略的操作導致該問題:

給類重新命名,此時類名變了,但是預處理變數沒有改變,這就為變數重複埋下隱患

當 gcc 找不到內建的標頭檔案

今天編譯原廠提供的韌體,遇到 error no include path in which to search for limits.h 的問題。google 得到的說法是 gcc 在配置時指定的 include path 錯了,對於我這種 ubuntu 下偷懶 apt get 來得到 gcc pa...

VS code 檔案引用找不到路徑的解決辦法

vscode 是按照工作區根目錄下的.vscode資料夾的路徑作為絕對路徑進行索引,如果工作区中里有許多資料夾,且資料夾內的py檔案需要引用當前目錄下的檔案,按照平常的方法寫入相對路徑是找不到檔案的,這時候需要在.vscode資料夾裡的launch.json檔案中,在使用的除錯環境中加入 cwd 來...

Qt Qt中的典型類和對應標頭檔案

類 名 對應標頭檔案 作用描述 qobject 類 include qobject 繼承了qobject 類的類,才具有訊號槽的能力 函式qdebug include qdebug 輸出資訊 qmainwindow類 include mainwindow.h 主視窗類 qaction類 includ...