当前位置: 首页 > news >正文

免费手机网站源码下载苏州建设招聘信息网站

免费手机网站源码下载,苏州建设招聘信息网站,部队内网网站建设方案,我想克隆个网站 怎么做文章目录 0. 引言1. 完整检测脚本代码 clang-tidy-check.sh1.1 流程图1.2 脚本功能概述 2. 该脚本优缺点 0. 引言 clang-tidy 是基于 Clang 的工具#xff0c;提供了丰富的代码检查功能#xff0c;可以根据用户配置文件进行定制化的检查和规则定义。 之前的文章《使用 Clang… 文章目录 0. 引言1. 完整检测脚本代码 clang-tidy-check.sh1.1 流程图1.2 脚本功能概述 2. 该脚本优缺点 0. 引言 clang-tidy 是基于 Clang 的工具提供了丰富的代码检查功能可以根据用户配置文件进行定制化的检查和规则定义。 之前的文章《使用 Clang-Tidy 进行静态代码分析完整的配置与 CMake 集成实例》已经对clang-tidy的安装和配置做了基本介绍并指明了如何与CMake集成。 本文将介绍如何使用 shell脚本进行clang-tidy静态代码分析。 1. 完整检测脚本代码 clang-tidy-check.sh #!/bin/bash set -e# Default build directory DEFAULT_BUILD_DIRbuild# Check if source dir path and optionally a build dir path are provided as arguments if [ $# -lt 1 ] || [ $# -gt 2 ]; thenecho Usage: $0 source_dir_path [build_dir_path]echo Error: Exactly one or two arguments expected.exit 1 fi# Save the user-inputted source dir path to a variable SOURCE_DIR$1# If a second argument (build directory) is provided, use it; otherwise, use the default if [ $# -eq 2 ]; thenBUILD_DIR$2echo $2 elseBUILD_DIR$DEFAULT_BUILD_DIRecho No build directory specified, using default: ${BUILD_DIR} fi# Check if the source path is an existing directory if [ ! -d ${SOURCE_DIR} ]; thenecho Error: SOURCE_DIR ${SOURCE_DIR} does not exist.exit 1 elseecho SOURCE_DIR is ${SOURCE_DIR} fi# Optionally, you can also check if the BUILD_DIR exists or handle its absence according to your needs if [ ! -d ${BUILD_DIR} ]; thenecho Warning: BUILD_DIR ${BUILD_DIR} does not exist. Depending on your scripts logic, this may or may not be a problem. fi ############## Set the source directory and build directory ROOT_DIR$(pwd) CLANG_TIDY_CONFIG${ROOT_DIR}/.clang-tidy COMPILE_COMMANDS${BUILD_DIR}/compile_commands.json# Check if compile_commands.json exists if [ ! -f ${COMPILE_COMMANDS} ]; thenecho Error: compile_commands.json not found in ${BUILD_DIR}.exit 1 fi# Find all .cc files in the source directory recursively ALL_STATIC_CHECK_FILES$(find ${SOURCE_DIR} -type f -name *.cpp)filter_clang_tidy_output() {awk /^clang-diagnostic-unused-command-line-argument/ {next}/^[0-9] warnings generated/ {next}/^Suppressed [0-9] warnings/ {next}/^Use -header-filter.*$/ {next}/^Use -system-headers .*$/ {next}/\/usr\// ||/\/opt\// {skipping1} # Start skipping upon a match with any of the specified patternsskipping 1 $0 ~ /\| * *\^/ {skipping0; next} # Stop skipping when encountering the flexible patternskipping 0 {print} # Print lines when not skipping }# Function to run clang-tidy run_clang_tidy() {echo Running clang-tidy...for file in $ALL_STATIC_CHECK_FILES; doclang-tidy-18 ${file} -p ${BUILD_DIR} --warnings-as-errors* \-config-file${CLANG_TIDY_CONFIG} -extra-arg-stdc14 \21| filter_clang_tidy_output \|| touch ${BUILD_DIR}/clang_tidy_faileddone }# Run clang-tidy run_clang_tidy# Check the results if [ -f ${BUILD_DIR}/clang_tidy_failed ]; thenecho Clang-tidy detected issues.exit 1 elseecho No Clang-tidy issues found. fi 1.1 流程图 #mermaid-svg-xaef1VrxzRQC1ohF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xaef1VrxzRQC1ohF .error-icon{fill:#552222;}#mermaid-svg-xaef1VrxzRQC1ohF .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-xaef1VrxzRQC1ohF .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-xaef1VrxzRQC1ohF .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-xaef1VrxzRQC1ohF .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-xaef1VrxzRQC1ohF .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-xaef1VrxzRQC1ohF .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-xaef1VrxzRQC1ohF .marker{fill:#333333;stroke:#333333;}#mermaid-svg-xaef1VrxzRQC1ohF .marker.cross{stroke:#333333;}#mermaid-svg-xaef1VrxzRQC1ohF svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-xaef1VrxzRQC1ohF .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-xaef1VrxzRQC1ohF .cluster-label text{fill:#333;}#mermaid-svg-xaef1VrxzRQC1ohF .cluster-label span{color:#333;}#mermaid-svg-xaef1VrxzRQC1ohF .label text,#mermaid-svg-xaef1VrxzRQC1ohF span{fill:#333;color:#333;}#mermaid-svg-xaef1VrxzRQC1ohF .node rect,#mermaid-svg-xaef1VrxzRQC1ohF .node circle,#mermaid-svg-xaef1VrxzRQC1ohF .node ellipse,#mermaid-svg-xaef1VrxzRQC1ohF .node polygon,#mermaid-svg-xaef1VrxzRQC1ohF .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-xaef1VrxzRQC1ohF .node .label{text-align:center;}#mermaid-svg-xaef1VrxzRQC1ohF .node.clickable{cursor:pointer;}#mermaid-svg-xaef1VrxzRQC1ohF .arrowheadPath{fill:#333333;}#mermaid-svg-xaef1VrxzRQC1ohF .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-xaef1VrxzRQC1ohF .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-xaef1VrxzRQC1ohF .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-xaef1VrxzRQC1ohF .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-xaef1VrxzRQC1ohF .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-xaef1VrxzRQC1ohF .cluster text{fill:#333;}#mermaid-svg-xaef1VrxzRQC1ohF .cluster span{color:#333;}#mermaid-svg-xaef1VrxzRQC1ohF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-xaef1VrxzRQC1ohF :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 合法 不合法 有指定构建目录 存在 不存在 存在 不存在 存在 不存在 有问题 无问题 开始 检查参数数量和合法性 保存源代码路径 显示错误并退出 设置默认构建目录 保存构建目录路径 显示默认构建目录 显示指定构建目录 检查源代码目录存在性 显示源代码目录路径 显示错误并退出 检查构建目录存在性 显示构建目录路径 显示警告 设置根目录和配置文件路径 检查compile_commands.json文件存在性 显示文件存在 显示错误并退出 查找所有.cpp文件 运行clang-tidy 检查clang-tidy结果 显示问题并退出 显示无问题 结束 1.2 脚本功能概述 这段脚本的主要功能包括 检查输入参数的合法性确保源代码目录路径正确并根据需要指定构建目录。检查是否存在编译命令文件 compile_commands.json该文件是 clang-tidy 进行分析所必需的。使用 find 命令递归查找源代码目录中的所有 .cpp 文件。运行 clang-tidy 对每个找到的 .cpp 文件进行静态代码分析输出详细的警告和建议。过滤和处理 clang-tidy 的输出以排除不必要的警告信息。根据分析结果判断是否有代码问题并相应地处理结果。 2. 该脚本优缺点 这段脚本的优点在于 自动化分析:有 compile_commands.json 文件即可进行分析不用依赖CMakeLists.txt。灵活处理: 可以根据分析结果灵活地处理代码中的问题或警告确保代码质量和稳定性。 然而该脚本也存在一些潜在的缺点 依赖性问题: 脚本依赖于正确配置的 clang-tidy 和 compile_commands.json 文件因为不像CMake每次可以实时更新 compile_commands.json 文件如果配置不正确可能导致分析失败。效率问题: 因为是依次遍历列表中的文件对大型代码库进行全面的静态分析可能会消耗较多的时间和计算资源影响效率。
http://www.w-s-a.com/news/435491/

相关文章:

  • 苏网站建设网页设计和网页美工
  • 跨境电商平台网站广州地铁站路线图
  • 吉林省交通建设集团有限公司网站企业网站推广的策略有哪些
  • 网站内链怎么做更好郑州网站建设哪家便宜
  • 建设大型购物网站运城哪里做网站
  • php企业网站通讯录管理系统做网站在线支付系统多少钱?
  • 怎么区分用vs和dw做的网站贝贝网网站开发背景
  • 无锡网站建设制作建设信息网查询
  • 彩票系统网站开发建设人力资源网官网
  • 有专门下载地图做方案的网站吗网站建设平台计划书
  • 网站闭站保护10个著名摄影网站
  • 安徽省建设工程信息网官网首页网站关键词排名优化工具
  • 深圳网站建设 百业网站专题教程
  • 公司seo是指什么意思如何来做网站优化
  • 化妆品网站建设平台的分析湖南网站搜索排名优化电话
  • 织梦网站修改教程视频教程管理类网站开发价格
  • 如何让新网站快速收录企业建站的作用是什么
  • 在线制作简历的网站做的最好的微电影网站
  • h5制作的网站网络游戏投诉平台
  • 做外贸网站好还是内贸网站好珠海新盈科技有限公 网站建设
  • php和网站开发网络软营销
  • 大型做网站的公司有哪些wordpress注册链接无效
  • 推荐门户网站建设公司网站开发移动端
  • 公司网站的栏目设置成都十大监理公司排名
  • 安溪住房和城乡建设网站关岭县建设局网站
  • 网站域名注销备案徐州房产网
  • 筑聘网windows优化大师自动安装
  • 龙华高端网站设计门户网站建设方案公司
  • 网站开发作用网站建设哪家专业
  • 网站设计报告总结南宁商城网站推广公司