我將我的C++代碼鏈接到幾個庫(其中有幾個庫是基於頭文件的),其中一些庫在一段時間內沒有更新。我一直在GCC 4.0編譯我的代碼-Wall
和Wextra
一段時間沒有任何警告或錯誤。但是,現在我使用的是更新版本的GCC(4.3),我的一些文件已經從其他庫的包含文件(例如,warning: type qualifiers ignored on function return type
)打印警告,當庫的模板代碼在返回的指針上使用restrict
關鍵字時)。同樣,我正在使用的羣集中的一個略微舊版本的OpenMPI,在使用GCC 4.1進行編譯時會打印出許多警告。在其他庫中編譯器警告
問題是:當我離開本地目錄讀取頭文件時,我可以做任何事情來禁止其他人的代碼中的警告?我想讓我的代碼儘可能乾淨和正確(因此,我啓用了所有警告),但是如果我的製作過程因無法修復的問題而混亂,目的就會失敗。我是否必須全局禁用在代碼中出現的特定警告?
我不相信 - 系統改變了其他的東西。這是我的方法,並且運作良好。唯一的問題是,由於您自己的代碼中的宏擴展(頭文件定義宏),可能仍然存在錯誤。 – 2009-08-25 15:50:37