如何确定使用了哪个编译器来编译可执行文件?

新手上路,请多包涵

从已编译的文件中,我可以查看使用哪个编译器生成文件吗?

原文由 monkeyking 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 536
2 个回答

还有很好的旧“字符串”实用程序。转储它在二进制文件中找到的所有 ascii-ish 字符串。不同的编译器在它们生成的二进制文件中嵌入了不同数量的信息,但许多实际上会包含明显的标识字符串。

原文由 JustJeff 发布,翻译遵循 CC BY-SA 2.5 许可协议

在某些情况下,您可以在二进制文件上运行 ldd 并找出它链接的标准库。例如在 Solaris gcc vs Sun CC 上。

对于 C++ 代码,您还可以转储一些符号,找到一个损坏的函数名称,然后找出哪个 demangler 生成正确的原始名称。

原文由 Mark B 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题