簡體   English   中英

使cppcheck跳過PACKAGE定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM