Joh*_*nes 4 googletest cppcheck
cppcheck扫描项目文件夹中的所有文件.
c:\projectfolder\main.c
c:\projectfolder\file.c
c:\projectfolder\file.h
c:\projectfolder\file_test.cc
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
file_test.cc包含gtest.h
C:\gtest\gtest.h
Run Code Online (Sandbox Code Playgroud)
不应测试C:\ gtest \中的所有文件.
我打电话
cppcheck.exe -ic:\gtest\ c:\projectfolder\ --enable=style --template="SomeError"
Run Code Online (Sandbox Code Playgroud)
file_test.cc从包含的c:\projectfolder\file_test.cc内容中找到并报告错误(详细信息:"太多#ifdef配置")
我怎么告诉cppcheck根本不看C:\ gtest\gtest.h?
我是Cppcheck开发人员.我认为你不能跳过头文件.也许-i应该这样工作.
随意创建一个关于此的门票:http://sourceforge.net/apps/trac/cppcheck/
我的项目结构如下所示:
\n\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lib\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 dep\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 dep.h\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 code.c\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 code.h\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 code_test.c\nRun Code Online (Sandbox Code Playgroud)\n\n为了抑制lib包含的警告,我这样做了:
cppcheck --enable=all --suppress=\'*:lib/*\' -Isrc -Itests ./src ./tests 1>/dev/null\nRun Code Online (Sandbox Code Playgroud)\n\n也许这应该适用于 Windows:
\n\ncppcheck.exe --suppress=\'*:c:\\gtest\\*\' c:\\projectfolder\\\nRun Code Online (Sandbox Code Playgroud)\n\n我的Cppcheck版本是1.74。
\n\n参考:
\n\n\n| 归档时间: |
|
| 查看次数: |
6252 次 |
| 最近记录: |