cppcheck

2025-12-11 0 972

cppcheck

释放窗口 oss-fuzz 封面扫描构建状态 包括您使用的内容 执照

关于名称

该程序的原始名称是“ C ++检查”,但后来更改为“ cppcheck ”。

尽管有名字,但cppcheck还是为C ++设计的。

手动的

手册可在线提供。

捐赠CPU

cppcheck是一个爱好项目,资源有限。您可以通过捐赠CPU(1个核心或任意数量)来帮助我们。很简单:

  1. 下载(和提取) cppcheck源代码
  2. 跑步: cppcheck/
    virtualenv .env
    .env/bin/pip install -r tools/donatecpu-requirements.txt
    .env/bin/python tools/donate-cpu.py\”>

     cd cppcheck /
    virtualenv .env
    .env/bin/pip install -r tools/donate-cpu-requirements.txt
    .env/bin/python tools/donate-cpu.py
    

该脚本将分析Debian源代码,并将结果上传到cppcheck服务器。我们需要这些结果来改善cppcheck和检测回归。

您可以随时随地使用CTRL C停止脚本。

编译

cppcheck需要一个具有(部分)C ++ 11支持的C ++编译器。最低要求的版本是GCC 5.1 / Clang 3.5 / Visual Studio 2015。

要构建GUI应用程序,您需要使用CMAKE构建系统。

构建命令行工具时,PCRE是可选的。如果您使用规则构建,则使用它。

有多种汇编选择:

  • CMAKE-跨平台构建工具
  • Windows:Visual Studio
  • Windows:QT Creator + Mingw
  • GNU制作
  • GCC(G ++)
  • clang(clang ++)

所需的最低Python版本为3.6。

cmake

最低要求的版本是Cmake 3.13。

例如,用cmake编译cppcheck :

mkdir build
cd build
cmake ..
cmake --build .

如果要编译GUI,则可以使用标志。 -dbuild_gui = on

为了规则支持(需要PCRE),请使用标志。 -dhave_rules = on

对于释放构建,建议您使用:-duse_matchcompiler = on

用于构建测试,请使用标志。 -dbuild_tests = on

使用CMAKE您可以为Visual Studio,Xcode等生成项目文件。

建立特定的配置

对于单个配置生成器(例如“ Unix Makefiles”),您可以使用:

mkdir build_RelWithDebInfo
cd build_RelWithDebInfo
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
cmake --build . --config RelWithDebInfo

对于多种配置发生器(例如“ Visual Studio 17 2022”),使用:

mkdir build
cd build
cmake ..
cmake --build . --config RelWithDebInfo

视觉工作室

使用cppcheck .sln文件。该文件是为Visual Studio 2019配置的,但是平台工具集可以轻松地更改为较旧版本或更新版本。该解决方案包含X86和X64的平台目标。

要使用规则进行编译,请选择“ Release-Pcre”或“ Debug-Pcre”配置。当时预计将在 /外部使用pcre.lib(用于X64构建的pcre64.lib)和pcre.h。可以使用VCPKG获得当前版本的用于Visual Studio的PCRE。

Visual Studio(来自命令行)

如果您不希望使用Visual Studio IDE,则可以从命令行中cppcheck以下命令。

msbuild cppcheck .sln

VS代码(在Windows上)

安装MSYS2以获取具有G ++和GDB(https://www.m**sys*2.org/)的GNU工具链。在.vScode文件夹中创建一个settings.json文件,其中包含以下内容(必要时调整路径):

 {
    \"terminal.integrated.shell.windows\": \"C:\\\\msys64\\\\usr\\\\bin\\\\bash.exe\",
    \"terminal.integrated.shellArgs.windows\": [
        \"--login\",
    ],
    \"terminal.integrated.env.windows\": {
        \"CHERE_INVOKING\": \"1\",
        \"MSYSTEM\": \"MINGW64\",
    }
}

在终端中运行“ make”以构建cppcheck 。

要调试,请在.vscode文件夹中使用以下内容创建一个启动.json文件,该文件涵盖了用于调试cppcheck和misra.py的配置:

cppcheck\”,
\”type\”: \”cppdbg\”,
\”request\”: \”launch\”,
\”program\”: \”${workspaceFolder}/ cppcheck .exe\”,
\”args\”: [
\”–dump\”,
\”${workspaceFolder}/addons/test/misra/misra-test.c\”
],
\”stopAtEntry\”: false,
\”cwd\”: \”${workspaceFolder}\”,
\”environment\”: [],
\”externalConsole\”: true,
\”MIMode\”: \”gdb\”,
\”miDebuggerPath\”: \”C:/msys64/mingw64/bin/gdb.exe\”,
\”setupCommands\”: [
{
\”description\”: \”Enable pretty-printing for gdb\”,
\”text\”: \”-enable-pretty-printing\”,
\”ignoreFailures\”: true
}
]
},
{
\”name\”: \”misra.py\”,
\”type\”: \”python\”,
\”request\”: \”launch\”,
\”program\”: \”${workspaceFolder}/addons/misra.py\”,
\”console\”: \”integratedTerminal\”,
\”args\”: [
\”${workspaceFolder}/addons/test/misra/misra-test.c.dump\”
]
}
]
}\”>

 {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.micr**oso*ft.com/fwlink/?linkid=830387
    \"version\": \"0.2.0\",
    \"configurations\": [
        {
            \"name\": \" cppcheck \",
            \"type\": \"cppdbg\",
            \"request\": \"launch\",
            \"program\": \"${workspaceFolder}/ cppcheck .exe\",
            \"args\": [
                \"--dump\",
                \"${workspaceFolder}/addons/test/misra/misra-test.c\"
            ],
            \"stopAtEntry\": false,
            \"cwd\": \"${workspaceFolder}\",
            \"environment\": [],
            \"externalConsole\": true,
            \"MIMode\": \"gdb\",
            \"miDebuggerPath\": \"C:/msys64/mingw64/bin/gdb.exe\",
            \"setupCommands\": [
                {
                    \"description\": \"Enable pretty-printing for gdb\",
                    \"text\": \"-enable-pretty-printing\",
                    \"ignoreFailures\": true
                }
            ]
        },
        {
            \"name\": \"misra.py\",
            \"type\": \"python\",
            \"request\": \"launch\",
            \"program\": \"${workspaceFolder}/addons/misra.py\",
            \"console\": \"integratedTerminal\",
            \"args\": [
                \"${workspaceFolder}/addons/test/misra/misra-test.c.dump\"
            ]
        }
    ]
}

QT创建者 + mingw

需要PCRE DLL来构建CLI。它可以在此处下载:http://software-download.name/pcre-library-windows/

GNU制作

简单,不优化的构建(无依赖性):

make

建议的发布构建是:

make MATCHCOMPILER=yes FILESDIR=/usr/share/ cppcheck HAVE_RULES=yes CXXFLAGS= \" -O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function \"

标志:

  1. MATCHCOMPILER=yes Python用于优化cppcheck 。令牌::匹配模式在编译时转换为C ++代码。

  2. FILESDIR=/usr/share/ cppcheck指定安装cppcheck文件的文件夹(addons,cfg,platform)

  3. HAVE_RULES=yes启用规则(使用此规则,需要PCRE)

  4. CXXFLAGS=\"-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function\"启用大多数编译器优化,禁用cppcheck内部调试代码并启用基本的编译器警告。

G ++(专家)

如果您只想在没有依赖关系的情况下构建cppcheck ,则可以使用此命令:

g++ -o cppcheck -std=c++11 -Iexternals -Iexternals/simplecpp -Iexternals/tinyxml2 -Iexternals/picojson -Ilib cli/ * .cpp lib/ * .cpp externals/simplecpp/simplecpp.cpp externals/tinyxml2/ * .cpp

如果要使用--rule--rule-file ,则需要依赖关系:

g++ -o cppcheck -std=c++11 -lpcre -DHAVE_RULES -Ilib -Iexternals -Iexternals/simplecpp -Iexternals/tinyxml2 cli/ * .cpp lib/ * .cpp externals/simplecpp/simplecpp.cpp externals/tinyxml2/ * .cpp

明格

mingw32-make

如果您遇到了MATCHCOMPILER=yes以下错误,则需要通过PYTHON_INTERPRETER指定Python解释器。

 process_begin: CreateProcess(NULL, which python3, ...) failed.
makefile:24: pipe: No error
process_begin: CreateProcess(NULL, which python, ...) failed.
makefile:27: pipe: No error
makefile:30: *** Did not find a Python interpreter.  Stop.

其他编译器/IDE

  1. 创建一个空的项目文件 / makefile。
  2. 将所有CPP文件在cppcheck CLI和LIB文件夹中添加到项目文件 / makefile中。
  3. 将所有CPP文件添加到外部文件夹中的所有CPP文件中。
  4. 编译。

Cross汇编Win32(CLI)在Linux中的cppcheck

cppcheck .exe\”>

sudo apt-get install mingw32
make CXX=i586-mingw32msvc-g++ LDFLAGS= \" -lshlwapi \" RDYNAMIC= \" \"
mv cppcheck cppcheck .exe

软件包

除了在您选择的平台上建立自己,还有几种获取预制包装的方法。

cppcheck团队维护的官方套餐:

  • (Windows)可以通过官方的cppcheck SourceForge页面提供官方Windows安装程序:https://cppcheck.sourceforge.io。
  • (Windows)当前开发版本的官方构建可通过Release-Windows Workflow获得。它们是main分支机构的每晚建造的,也是为发布分支的每个承诺。由于这些是开发版本,请不要在生产环境中使用它们!
    • 便携式软件包(即不需要安装)可作为portable工件。有关详细信息,这仍然是一个工作 – 请参阅https://trac.cppcheck.net/ticket/10771。
    • 可以通过installer工件获得安装程序。
  • (多平台)可通过https://www.cpp*c*he*ck.com购买,具有由cppcheck原始作者提供的其他功能的高级版本。

cppcheck团队没有维护的非官方包,而是他们各自的包装者:

  • (Windows/utatest)可通过https://portab**le*apps.com/apps/development/cppcheck-portable获得便携式软件包。
  • (Windows/uteDated)可以通过https://community.*c*ho*calyy.org/packages/cppcheck获得一个软件包。
  • (Windows/utatest)可以通过https://winge*t.*ru*n/pkg/cppcheck/ cppcheck获得一个软件包。
  • (Windows/utatest)可以通过https://osdn*.net**/projects/sfnet_cppcheck获得一个软件包。
  • (Windows)可以通过https://**sc*oop.sh/#/apps?q=cppcheck获得一个软件包。
  • (Linux/Unix)许多主要发行版通过其集成的软件包经理( yumaptpacman等)提供cppcheck软件包。请参阅https://*pkgs.o*r*g/search/?q=cppcheck或https://repology.org/project/project/cppcheck以获取概述。
  • (Linux/Unix)除非您使用“滚动”发行版,否则它们可能不会携带最新版本。有几个外部(主要是不支持的)存储库,例如AUR(Archlinux),PPA(Ubuntu),Epel(Centos/fedora)等,它们可能提供最新的软件包。
  • (linux/unix/uteDated)典型的快照软件包(https://*snap*cra*ft.io/cppcheck/ https://s*na*pc*raft.io/cppcheckgui)都不是且包含非常旧的(开发)版本。请不要使用它们!有关更多详细信息,请参见https://trac.cppcheck.net/ticket/11641。
  • (MacOS)可以通过Homebrew( brew )获得一个包装。请参阅https://formulae.br***ew.sh/formula/cppcheck。
  • (MacOS)可以通过https://ports.*macport**s.org/port/cppcheck获得一个软件包
  • (多平台)可以通过https://anaconda.*o**rg/conda-forge/cppcheck获得软件包。
  • 也可以从各种下载门户(主要是Windows安装程序 – 有时重新包装)中获得包装。

注意:这是纯粹的信息列表,没有特定顺序列出。

注意:请始终尝试从操作系统/发行版的主要官方来源获取包裹,并确保您获得了最新发布的版本。

注意:某些问题可能与这些软件包或包装本身中构建的其他补丁有关。在这种情况下,可能需要将问题报告给相应的项目。

网页

https://cppcheck.s*ou*rce*forge.io/

下载源码

通过命令行克隆项目:

git clone https://github.com/danmar/cppcheck.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 cppcheck https://www.zuozi.net/34059.html

NDBGRID
上一篇: NDBGRID
dotfiles
下一篇: dotfiles
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务