linux - 如何为 aCC (Hp-Ux) 和 g++ (Linux) 获得相同的预处理器输出?

标签 linux g++ acc

我专门编写了脚本,用于对 HpUx 预处理器输出执行某些操作并获取所需的详细信息。

  • HpUx-ia64。
  • Linux-x86_64。

现在我需要将其迁移到 Linux。我如何才能获得与源名称上的 hpux aCC -E 相同的 g++ -E (linux) 输出,而不是完全为 Linux 重写工具。

最佳答案

Instead of rewriting tool entirely for Linux, how can I get the g++ -E (linux) output same as that of hpux aCC -E on a sourcename.

简短回答:不。

更长的答案:编译器通常不关心 $compiler -E 的输出是什么样子,只要它相当准确地表示程序即可。当 $compiler -c foo.cc 工作正常时,某些编译器甚至无法编译 $compiler -E foo.cc 的输出(这是一个错误,但优先级较低)。

任何适用于预处理文件(即您的脚本)的工具或脚本都应该接受有效的预处理结果。坚持所有编译器都产生完全相同的预处理输出是没有意义的;这不会发生。

更长的答案:g++ 是开源的。如果您认为修复 g++ 以匹配 aCC 的输出比修复脚本以接受任一输入更容易,那么您有能力这样做(但我预测前者比后者至少困难 1000 倍)。

最后,您没有提供任何有关您试图消除哪些差异的详细信息。如果您这样做了,这个(或其他一些)答案可能会更有用。

关于linux - 如何为 aCC (Hp-Ux) 和 g++ (Linux) 获得相同的预处理器输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31963554/

相关文章:

c++ - makefile,缺少分隔符错误

c++ - 编译程序时的错误信息

azure - 无法在 Azure secret 计算 (ACC) 上创建 VM

c - 在 HP-UX 11.00 中,什么会导致应用程序报告来自 .sl 库的 undefined symbol __shlinit?

linux - 如何根据用户选择按编号顺序创建多个文件?

C - 系统调用 - N 个子进程的数组分区 -

linux - NEO4J : ERROR: Unable to find java. (无法执行/usr/lib/jvm/java-7-oracle/jre/bin/java/bin/java)

linux - 在 EC2 实例上使用用户数据脚本运行 ansible-playbook

c++ - 宽松原子操作的内存模型释放/获取模式交互

ffmpeg - 如何在 FFmpeg 4.0 中将 5.1 音频拆分为离散的 AAC 流