当前位置: 首页 > 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.hkea.cn/news/14297075/

相关文章:

  • 网站优化原理Hizz wordpress
  • 廊坊建设局网站6我的电脑做网站服务器吗
  • 企业宣传网站公司青岛网站权重提升
  • 公司可以做网站吗线上网页设计流程
  • wordpress建站邦泽网站建设
  • 大庆做网站找谁微网站管理
  • 企业网站为什么都选千博企业网站wordpress文章加密访问
  • 个人备案的网站可以做淘宝客吗深圳企业网站制作设计
  • 四会市城乡规划建设局网站hk域名哪里注册
  • 手机网站宽度百度网页跳转app
  • 外汇交易网站建设企业网络推广分析
  • 网站建设工作整改报告返利网站开发
  • 个人网站包括哪些内容手机地图app下载安装
  • 官方网站弹幕怎么做抖音开放平台是干嘛的
  • 旅游网站建设的详细方案商丘网站制作案例
  • 汕头网站搜索优化徐州网站建设方案优化
  • 游戏道具网站开发做网站公司 陕西渭南
  • 网站排名软件 利搜wordpress 前端发帖
  • 如何在自己做的网站中顶置内容iis8 wordpress
  • 落地页需要建网站吗seo推广宣传
  • 品牌型网站制作哪武邑县网站建设
  • 玉溪网站制作公司个人网站做音乐网要备文化
  • 成都网络优化网站建设全国连锁装修公司加盟
  • 大型网站seo方案强生网站还要怎样做
  • 太原网站维护郑州电力高等专科学校男女比例
  • 济南住宅与房地产信息网官方网站厦门网站做的比较好
  • 做文创的网站开发者模式怎么开启
  • 西安建网站的公司在线做维恩图的生物信息学网站
  • 营销型企业网站的含义西安网站建设易网宣
  • 成都网站建设哪家ftp上传wordpress网站要多久