问题描述
Cppcheck扫描项目文件夹中的所有文件:
Cppcheck scans all files in a project folder:
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文件
File file_test.cc
includes the gtest.h file
C:\gtest\gtest.h
不应测试C:\gtest\中的所有文件。
All files in C:\gtest\ should not be tested.
我叫
cppcheck.exe -ic:\gtest\ c:\projectfolder\ --enable=style --template="SomeError"
在 c中发现并报告了错误:\ \projectfolder\file_test.cc
来自随附的 gtest.h
(详细信息:#ifdef配置太多)。
Errors are found and reported in c:\projectfolder\file_test.cc
coming from the included gtest.h
(detail: "too many #ifdef configurations").
我如何告诉Cppcheck根本不看 C:\gtest\gtest.h
?
How do I tell Cppcheck to not look at C:\gtest\gtest.h
at all?
推荐答案
我的项目结构如下:
├── build
├── lib
│ └── dep
│ └── dep.h
├── src
│ ├── code.c
│ └── code.h
└── tests
└── code_test.c
禁止显示 lib
的警告包括,我是这样做的:
To suppress warnings for lib
includes, I did this:
cppcheck --enable=all --suppress='*:lib/*' -Isrc -Itests ./src ./tests 1>/dev/null
也许在Windows上应该可以使用:
Maybe this should work on Windows:
cppcheck.exe --suppress='*:c:\gtest\*' c:\projectfolder\
我的Cppcheck版本是1.74。
My Cppcheck version is 1.74.
参考:
这篇关于如何告诉Cppcheck跳过头文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!