我有一个项目,我给了几个Makefile,它也做预编译 - 使用Pro * C。它们必须从HP-Unix迁移到Linux系统。 到目前为止没问题,但在某些方面我无法弄清楚(或者仍然没有找到合适的谷歌关键字)gcc调用中某些给定的选项/标志正在做什么。
请考虑以下示例:
FLAGS_C=-Ae -v
FLAGS_PROC=-g +Z -Ae +M2
我在手册页中没有找到关于-Ae
或+Z +M2
的任何内容,但只是在shell上调用它们会告诉我它们存在 - 但不是它们会做什么或正在等待什么。
从make的输出中我只能看到+ Z或+ M2似乎在等待一个不存在的目录。
$ gcc +Z
gcc: +Z: No such file or directory
gcc: no input files
然后输出后跟:
<command-line>: error: missing '(' after predicate
由于还有一些Makesfiles,我还没有看到我想知道是否有任何好的资源可以帮助我找出未知选项/标志是什么。
gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973]
修改 正如其他人提到的那样+ Z + M2可能定义为没有gcc选项。因此,我对gcc + Z调用的解释可能只是错误的理解。
答案 0 :(得分:2)
GCC文档有一个概述页面,其中包含所有这几百个选项:https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html
-Ae
可能是-A
预处理程序选项,谓词名称为e
-A predicate = answer
使用谓词谓词和回答答案进行断言。此表单比旧表单 - 谓词(答案)更受欢迎,它仍然受支持,因为它不使用shell特殊字符。
FLAGS_PROC
似乎不是gcc选项。我从来没有听说过像+ Z或+ M2这样的选项,我的GCC拒绝了它们。
它们可能是HPUX链接器选项......?
您没有说出您使用的HPUX版本,这可能是您感兴趣的。 + z / + Z选项AFAIK仅与HPUX相关,而不与gcc或binutils相关。如果 你的gcc是以通常的方式设置的,使用gnu as,只使用HPUX链接器 来自标准的HPUX工具集。你可以检查一下“男人”。看看那些 选项与HPUX ld相关。对不起,我不再受雇于我所在的地方 访问HPUX。
https://groups.google.com/d/msg/gnu.gcc.help/iWt83RMbt-8/rsAQ14_r-jgJ