Cppcheck扫描项目文件夹中的所有文件:
c:\projectfolder\main.c
c:\projectfolder\file.c
c:\projectfolder\file.h
c:\projectfolder\file_test.cc
c:\projectfolder\file_test.cc
包含以下代码
#include "c:/gtest/gtest.h"
extern "C"
{
#include "TMyStruct.h"
}
TEST(Stack, Overflow)
{
TMyStruct unterTest;
EXPECT_EQ(1, TMyStruct_Init(&unterTest));
EXPECT_GE(unterTest.variable, 9000);
}
文件file_test.cc
包含gtest.h文件
C:\gtest\gtest.h
不应测试C:\ gtest \中的所有文件。
我打电话
cppcheck.exe -ic:\gtest\ c:\projectfolder\ --enable=style --template="SomeError"
c:\projectfolder\file_test.cc
来自包含的gtest.h
(详细信息:“太多#ifdef配置”)中发现并报告了错误。
如何告诉Cppcheck根本不看C:\gtest\gtest.h
?
答案 0 :(得分:9)
我是Cppcheck开发人员。我认为你不能跳过头文件。也许-i应该像那样工作。
随意创建一个关于此的故障单:http://sourceforge.net/apps/trac/cppcheck/
答案 1 :(得分:3)
我的项目结构如下:
├── build
├── lib
│ └── dep
│ └── dep.h
├── src
│ ├── code.c
│ └── code.h
└── tests
└── code_test.c
要取消lib
包含的警告,我这样做了:
cppcheck --enable=all --suppress='*:lib/*' -Isrc -Itests ./src ./tests 1>/dev/null
也许这应该适用于Windows:
cppcheck.exe --suppress='*:c:\gtest\*' c:\projectfolder\
我的Cppcheck版本是1.74。
参考: