如何删除未使用的变量和函数

发布于 2024-10-20 23:03:29 字数 117 浏览 4 评论 0 原文

我开始使用以前程序员的 C++ 代码。我知道有很多未调用的函数和未使用和/或初始化的变量。我想知道是否有一些工具可以自动“清理”代码并删除所有这些未使用的代码。我说的是源代码,而不是最终的构建输出。我更喜欢开源解决方案。

I started to work with a C++ code from a previous programmer. I know that there is a lot of functions that are not called and variables which are not used and/or initialized. I wonder if there are some tools that can automatically "clean" code and remove all this non-used code. I am talking about source code and not about final build output. I would prefer open source solutions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不奢求什么 2024-10-27 23:03:29

许多编译器/链接器会在一定程度上为您修剪代码,例如 Visual C++/OPT:REF 开关。

Many compilers/linkers prune your code for you to a certain extent, like Visual C++'s /OPT:REF switch.

蛮可爱 2024-10-27 23:03:29

您也许可以通过运行 CPPCheck 获得一些有用的东西 对代码执行静态分析。将所有错误视为警告还有助于识别哪些变量未使用,因为在解决这些错误之前您的代码不会编译。

您可以做的另一件事是创建一组单元测试来覆盖预期的功能,并通过覆盖工具(例如 gcov,如果您使用的是 GCC)运行它,这将显示执行了哪些代码行以及执行了多少次。

You might be able to get something useful out of running CPPCheck which performs static analysis of your code. Treating all errors as warnings will also help identify which variables are unused as your code will not compile until they are resolved.

The other thing you could do is create a set of unit tests to cover the expected functionality and run it through a coverage tool (such as gcov if you're using GCC), this will show which lines of code are executed and how many times.

冷了相思 2024-10-27 23:03:29

这是编译器/链接器的工作,用于从二进制文件中删除死代码。
使用 gcc 标志 -fdata-sections 和 -ffunction-sections 编译源代码,然后使用标志 –gc-sections 链接二进制文件。

我认为您还可以在编译时对静态未使用变量发出警告。

最后,您可以使用 gcov 或等效工具进行代码覆盖

This is the compiler/linker job to remove dead code from your binary.
Compile your source code with gcc flags -fdata-sections and -ffunction-sections then link your binary with the flag –gc-sections.

I think you can also produce warnings at compilation time for static unused variables.

Finally you can use gcov or equivalent tool for code coverage

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文