This is a translation done by ChatGPT.
NaiveSystems Analyze 是一个用于代码安全和合规性的静态分析工具。此存储库包含社区版的源代码,该版本是免费且开源的。要了解更多关于企业版的信息,请访问官方网站或联系 hello[AT]naivesystems.com
。
NaiveSystems Analyze 社区版目前支持以下编码标准:
企业版支持 (a) 上述编码标准的更新版本,(b) 其他 C/C++ 编码标准,包括 CERT 和 CWE 的更多安全导向规则,以及 (c) 许多其他编程语言。
参考我们的演示仓库(例如 analyze-demo 和 googlecpp-demo)来了解如何指定和配置各种编码标准及其规则。
您可以选择使用预构建的容器镜像、GitHub Actions,或直接从源代码构建。
对于使用 Makefile 的项目,在项目根目录下运行以下命令:
podman pull ccr.ccs.tencentyun.com/naivesystems/analyze:2023.4.1.0
mkdir -p output
podman run --rm \
-v $PWD:/src:O \
-v $PWD/.naivesystems:/config:Z \
-v $PWD/output:/output:Z \
ccr.ccs.tencentyun.com/naivesystems/analyze:2023.4.1.0 \
/opt/naivesystems/misra_analyzer -show_results
几点说明:
-
您可以使用
docker
代替podman
。 -
您必须在
.naivesystems/check_rules
中配置规则。- 参考 analyze-demo 了解示例。
- 此存储库中的
rulesets/*.check_rules.txt
列出了大多数(如果不是全部)支持的规则。
-
如果您不使用 SELinux,可以移除
:Z
。 -
用您想使用的实际版本号替换
2023.4.1.0
。
NaiveSystems Analyze 可以自动追踪并捕获您的构建过程。目前我们仅在社区版中发布基于 Fedora 的镜像,因此您的代码必须在 Fedora Linux 下成功编译才能使用预构建的容器镜像。对于 Debian、Ubuntu、CentOS 或 RHEL 等其他操作系统,请联系我们获取企业版。
分析结果也可在 output
目录中找到。您可以使用我们的 VS Code 扩展 在 Visual Studio Code 中查看结果。
除了 Makefile,我们还支持许多其他项目类型。另见:
NaiveSystems Analyze 支持在 GitHub Actions 中直接运行。例如,googlecpp-action 是我们官方发布的用于检查 Google C++ 风格指南的 action。请参阅 googlecpp-demo 了解更多信息。
要从源代码构建,请在 Fedora 36 或 37 上遵循以下步骤。社区版中并未官方支持其他版本,但它们可能也适用。
- 安装构建依赖
dnf install -y autoconf automake clang cmake libtool lld make python3-devel wget which xz zip
make
- 构建容器镜像
make -C podman_image build-en
这将为 MISRA C:2012 构建一个名为 naive.systems/analyzer/misra:dev_en
的镜像。如有需要,您可以指定其他目标。阅读代码了解更多细节。
NaiveSystems Analyze 可以在各种 Linux 发行版上构建。例如,本存储库中的社区版可以在官方的 Ubuntu 22.04 LTS 运行器镜像中的 GitHub Actions 中构建。对于 Debian、Ubuntu 18.04/20.04 LTS、CentOS 7/8 或 RHEL 及其衍生版等其他操作系统,请联系我们获取企业版。
如果您发现 NaiveSystems Analyze 的错误,请随时在 issues 中报告。
如果您使用微信,可以扫描下方的二维码加入我们的群聊:
(二维码在过期或群组人数超过 200 人时会更新。)
NaiveSystems Analyze 的社区版根据 GNU 通用公共许可证版本 3 授权。某些子组件可能有不同的许可证。有关详细信息,请参阅此存储库中的相应子目录。
企业版提供不同的许可证和条款。联系我们了解更多。