c++ - 如何在本地生成像干净组装一样的godbolt?

标签 c++ assembly gcc clang compiler-explorer

我想生成干净的程序集,如 Compiler Explorer本地。请注意,我阅读了 How to remove “noise” from GCC/clang assembly output?在尝试之前。与 Godbolt 相比,使用该方法的输出没有那么干净或密集,并且仍然有很多 asm 指令和未使用的标签。
如何在没有任何未使用的标签或指令的情况下获得干净的汇编输出?

最佳答案

备案,可以(而且显然不太难)设置本地安装 Matt Godbolt 的编译器资源管理器 ,因此您可以使用它来探索作为现有大型项目一部分的文件的 asm 输出,其 #include依赖和一切。
如果您已经有一些 asm 输出,@Waqar 的回答看起来很有用。或者,也许可以通过 node.js、IDK 从 Compiler Explorer 存储库单独使用该功能。
根据 https://github.com/compiler-explorer/compiler-explorer 中自述文件中的安装信息(马特的 repo ),你可以简单地运行 make在安装了 node.js 的机器上克隆它之后。

我还找到了 https://isocpp.org/blog/2017/10/cpp-weekly-episode-83-installing-compiler-explorerjason-turner可能有更多细节(或者在这一点上已经过时,IDK)。
我想 Matt 在他的 CppCon 2017 演讲中也提到了使用 Compiler Explorer 的本地克隆(可能会在最后回答一个问题),“What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid ”,并推荐它用于使用大量 #include 的代码。那将很难进入https://godbolt.org/ . (或用于封闭源代码)。

关于c++ - 如何在本地生成像干净组装一样的godbolt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63015986/

相关文章:

c++ - 用户创建的 header 导致 C2061 : Syntax Error : Identifier 'classname'

c - 了解++i 和 i++ 在汇编级别的区别

使用#pragma GCC optimize 优化 C 代码

c - getrusage 在 ru_utime.tv_usec 和 ru_utime.tv_sec 中返回零

c++ - 在 Linux 上编译 C++ 代码。需要使用 gcc/4.7.2。找不到标准库

c++ - Boost::optional<bool> 解引用

c++ - 为什么 MSVC++ 需要 std::setprecision 来启用 std::hexfloat 的全精度输出?

SHL eax、ecx 的程序集 x86 错误

assembly - 可以在Linux上的代码中使用BIOS中断吗?

c++ - 函数 'strlen' 无法解析 - Eclipse cpp