[英]make cppcheck skip the PACKAGE definition
我正在使用cppcheck 1.64的GUI版本對C ++-Builde-6代碼進行靜態代碼分析。 對於DLL導出和導入,必須定義PACKAGE
:
/// A dialog exported from a BPL (a VCL-specific kind of DLL)
class PACKAGE MySharedDialog {
public:
// lots of methods to-be checked
private:
// lots of methods to-be checked
// lots of members
};
Cppcheck在遇到PACKAGE
時停止,因為它不知道這意味着什么:
未處理代碼“類PACKAGE TAppInfoDialog {”。 您可以使用-I或--include添加對該代碼的處理。
...這當然意味着不會檢查整個班級。 如果我可以使cppcheck 僅僅忽略PACKAGE
“ keyword”,它會做正確的事情,但是怎么做呢? 通過include路徑包括它的原始定義似乎不是一個選擇:cppcheck然后告訴了我很多關於 VCL框架標頭的信息 , 我無法更改 ...
該手冊沒有描述執行此操作的選項,Google則沒有幫助,因此尚無答案。
在cppcheck問題跟蹤器中,我發現了類似的問題#4707(類的Microsoft“抽象”和“密封”擴展名)– cppcheck 。 首席開發人員在這里建議創建一個文件,並將其包含在cppcheck運行中,但我使用的是GUI版本,沒有選擇包含單個文件的選項。 因此,我嘗試在項目選項(XML文件)的include部分中添加一個Director,然后我編輯了對應於文件規范的行,但這顯然是毫無意義的,因為此部分包含include path 。
接下來我可以嘗試什么?
一種解決方案是將PACKAGE
的定義(為空)添加到項目文件中:
<?xml version="1.0" encoding="UTF-8"?>
<project version="1">
<defines>
<define name="PACKAGE=" />
</defines>
</project>
我終於在主項目·danmar / cppcheck·GitHub上的項目倉庫cppcheck / gui / projectfile.txt中找到了這個小而有價值的項目文件描述中的解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.