【编程基础】CppLint工具使用过程

前言

coding最好要形成一定的编程风格,一般常用的开源风格有google code style,可以使用cpplint工具检查是否符合该编程风格。

Cpplint是一个Python脚本,作为一款开源免费的代码静态检测工具,Google也使用它作为自己的C++代码检测工具,也就是说,只要你想代码遵从Google C++代码规范,那么Cpplint将会提供很好的代码静态检测支持。

  1. Cpplint.py支持的文件格式包括.cc、.h、.cpp、.cu、.cuh。

  2. Cpplint只是一个代码风格检测工具,其并不对代码逻辑、语法错误等进行检查。

目录

  1. linux系统使用过程;

  2. windows系统使用过程;

注意,目前cpplint.py是基于python2的脚本,若要使用python3请按照python3改写cpplint.py。

操作

1. linux系统使用过程

1.1 安装cpplint;

$pip install cpplint

1.2 保存cpplint.py文件;

1.3 检测单个文件;

cpplint_dir$python2 cpplint.py test.cpp

1.4 检测批量文件;

根据要检测的文件编写shell脚本,然后运行即可。

注意,sh和bat适应于不同的系统,bat文件是window系统的执行文件,sh是linux系统的批处理文件。

cpplint_shell.sh实例;

#! /bin/bash
echo "^@^cpplint code style check through shell====^@^"
index=0
config=""
pwd_path=`pwd`
cpplint_path="$pwd_path/cpplint.py"
echo cpplint_path=$cpplint_path

src_path="$pwd_path/src"
echo src_path=$src_path
# add file to an array,and check file in array last
# for file in `find $src_path -name "*.h" -type f`
for file in `find $src_path -maxdepth 1 -type f | grep -E ".h$|.cc$|.cu$|.cpp$"`
do
    echo file=$file
    echo -e "\033[36m ===> [FILE] \033[0m \033[47;31m $file \033[0m"
    check_files[$index]=$file
    index=$(($index+1))
done
# accroding to config options make a checking command
# first check if python2 exists
check_cmd=""
is_python2_exists=`ls /usr/bin/ | grep -E '^python2$' | wc -l`
if [ $is_python2_exists -ge 1 ]
then
    # read cpplint.ini to decide which option to add
    for file in ${check_files[*]}
    do
        check_cmd="python2 $cpplint_path --linelength=80"
        echo -e "\033[33m =========== check file $file =============\033[0m"
        check_cmd="$check_cmd"$file
        eval $check_cmd
        echo -e "\033[45m ==========================================\033[0m"
    done
fi

运行:

cpplint_dir$sudo bash cpplint_shell.sh

这个脚本是直接在terminal终端打印信息,更进一步,其实可以尝试生成检测报告,也可以尝试将检测信息当成注释放在源文件。

注意,一定要使用bash,被这个问题搞了半天,(# ̄~ ̄#)

这是因为sh和bash的shell解析器版本不一样,版本不同,解析规则有不一样的地方。

使用sh运行的时候出现bad substitution的错误,使用bash就没有问题啦。。。

2. windows系统使用过程

2.1 安装python,注意设置系统环境变量,将python的安装目录写入path环境变量,保存cpplint.py文件;

2.2 运行命令或者脚本文件;

命令行:

cpplint_py_dir$python cpplint.py test.cpp

batch文件:

echo off
python cpplint.py test.cc --output=vs7 > report.txt 2>&1
pause

执行bat文件即可;

2.3 批量检测分析;

步骤:在目录下创建src和reports目录;将要检测的源文件置于src目录;修改batch文件并执行;

echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set suffix=.report.txt
set src_path=src
set reports_path=reports
for %%i in (%src_path%/*.cpp) do (
echo %%i
set report_name=%reports_path%/%%i%suffix%
set src_name=%src_path%/%%i
echo src_name=!src_name!
echo report_name=!report_name!
python cpplint.py !src_name! --counting=toplevel --output=vs7 > !report_name! 2>&1
)
pause

注意,1)等号=两边没有空格等。2)必须在dos下实验目录运行bat文件。3)bat文件是dos下的批处理文件。

运行脚本:

cpplint_py_dir$./cpplint_batch.bat

题外话

在此疾速成长的科技元年,编程就像是许多人通往无限可能世界的门票。而在编程语言的明星阵容中,Python就像是那位独领风 骚的超级巨星, 以其简洁易懂的语法和强大的功能,脱颖而出,成为全球最炙手可热的编程语言之一。


Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。

在下个十年的剩余时间里,Python 还能如此重要以及保持完整性吗?今天,我们将对事实进行分析,破除一些误解。

如果你对Python感兴趣,想通过学习Python获取更高的薪资,那下面这套Python学习资料一定对你有用!

资料包括:Python安装包+激活码、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。0基础小白也能听懂、看懂,跟着教程走,带你从零基础系统性地学好Python!

学习资源推荐

除了上述分享,如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。

这里给大家展示一下我进的兼职群和最近接单的截图

兼职群

私单

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取,也可以内推兼职群哦~

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

### 1.Python学习路线

image-20230619144606466

python学习路线图1

2.Python基础学习
01.开发工具

02.学习笔记

在这里插入图片描述

03.学习视频

在这里插入图片描述

3.Python小白必备手册

图片

4.数据分析全套资源

在这里插入图片描述

5.Python面试集锦
01.面试资料

在这里插入图片描述

在这里插入图片描述

02.简历模板

在这里插入图片描述

因篇幅有限,仅展示部分资料,添加上方即可获取👆

------ 🙇‍♂️ 本文转自网络,如有侵权,请联系删除 🙇‍♂️ ------

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL编程基础: MySQL是一个关系型数据库管理系统,它使用SQL语言进行数据操作和管理。MySQL支持多种编程语言,例如Python、Java、C++和JavaScript等。在MySQL编程中,通常需要掌握以下基础知识: 1. 数据类型:MySQL支持多种数据类型,例如整数、浮点数、日期、字符串等。 2. 数据库连接:在MySQL编程中,需要使用连接字符串来连接数据库。连接字符串包括服务器名称、用户名、密码和数据库名称等信息。 3. 数据库操作:MySQL支持多种数据库操作,例如查询、插入、更新和删除等。 4. 错误处理:在MySQL编程中,需要处理可能出现的错误,例如连接失败、SQL语句错误等。 存储过程: 存储过程是一种在MySQL中定义的可重用的程序,它可以接收参数并返回结果。存储过程通常用于执行常见的数据库操作,例如插入、更新和删除等。存储过程有以下优点: 1. 可重用性:存储过程可以在多个应用程序中重复使用,减少了代码的重复编写。 2. 性能优化:存储过程可以在数据库服务器上执行,因此可以减少网络传输和客户端计算的开销。 3. 安全性:存储过程可以限制用户对数据库的访问权限,从而提高了数据库的安全性。 在MySQL中,需要使用CREATE PROCEDURE语句来定义存储过程。例如,以下是一个简单的存储过程,它接收一个整数参数并返回一个字符串: ``` CREATE PROCEDURE myprocedure (IN id INT, OUT result VARCHAR(255)) BEGIN SELECT name INTO result FROM mytable WHERE id = id; END ``` 在此存储过程中,IN关键字表示输入参数,OUT关键字表示输出参数,BEGIN和END之间的语句是存储过程的主体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值