【发布时间】:2015-08-12 11:12:38
【问题描述】:
我专门编写了脚本来对 HpUx 预处理器输出执行某些操作并获取所需的详细信息。
- HpUx-ia64。
- Linux-x86_64。
现在我需要将其迁移到 Linux。我怎样才能获得与源名称上的 hpux aCC -E 相同的 g++ -E (linux) 输出,而不是完全为 Linux 重写工具。
【问题讨论】:
我专门编写了脚本来对 HpUx 预处理器输出执行某些操作并获取所需的详细信息。
现在我需要将其迁移到 Linux。我怎样才能获得与源名称上的 hpux aCC -E 相同的 g++ -E (linux) 输出,而不是完全为 Linux 重写工具。
【问题讨论】:
我怎样才能在源名称上获得与 hpux
aCC -E相同的g++ -E(linux) 输出,而不是完全为 Linux 重写工具。
简短回答:不。
更长的答案:编译器通常不关心$compiler -E 的输出是什么样的,只要它相当准确地表示程序即可。当$compiler -c foo.cc 工作正常时,一些编译器甚至无法编译$compiler -E foo.cc 的输出(这是一个错误,但优先级较低)。
适用于预处理文件(即您的脚本)的任何工具或脚本都应接受有效的预处理结果。坚持所有编译器产生完全相同的预处理输出是没有意义的;它只是不会发生。
更长的答案:g++ 是开源的。如果您认为修复 g++ 以匹配 aCC 的输出比修复脚本以接受任一输入更容易,那么您有权这样做(但我预测它是前者比后者难至少 1000 倍)。
最后,您没有详细说明您要消除哪些差异。如果您这样做了,这个(或其他)答案可能会更有用。
【讨论】: