2014-10-09 4 views
2

У меня есть проект, где мне дали несколько Makefiles, которые также выполняют Precompiler-Work с Pro * C. Их нужно перенести из HP-Unix в Linux-систему. Нет проблем до сих пор, но в некотором роде я не могу понять (или до сих пор не нашел правильных ключевых слов Google), что делают некоторые заданные опции/флаги в вызове gcc.Узнайте, что делает данный gcc Option/Flag?

Рассмотрим следующий, например:

FLAGS_C=-Ae -v 
FLAGS_PROC=-g +Z -Ae +M2 

Я не нашел ничего на странице человека о -Ae или +Z +M2, а просто называя их на раковине показывает мне, что они существуют - но не то, что они будут делать или ожидают.

Из вывода 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] 

Edit: Как уже mentiond + Z + M2 может быть определенно не НКУ вариант. Возможно, возможно, что моя интерпретация вызова gcc + Z - это просто неправильное понимание.

+0

Мой НКУ фактически отвергает '+ Z'. Что такое «FLAGS_PROC»? Какие версии GCC вы используете? –

+0

версия отредактирована. FLAGS_PROC передается компилятору proc. – Stefan

ответ

2

НКА документы имеют страницу обзора для всех нескольких сот вариантов он имеет: https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html

  • -Ae, вероятно, вариант -A препроцессора с именем предиката e

-A предикат = ответ

Сделать утверждение с предикатом и ответом на ответ. Эта форма предпочтительнее старой формы - предикат (ответ), который все еще поддерживается, потому что он не использует специальные символы оболочки.

FLAGS_PROC, похоже, не являются вариантами gcc. Я никогда не слышал ни о каком варианте, как + Z или + M2, и мой GCC отвергает их.

Возможно, это варианты компоновщика HPUX ...?

Вы не сказали, какая версия HPUX вы используете, что может представлять интерес. Параметры + z/+ Z AFAIK относятся только к HPUX, а не к gcc или binutils. Если ваш gcc настроен обычным способом, используя gnu as, только стандартный компоновщик HPUX используется из стандартного набора инструментов HPUX. Вы можете проверить «man ld», чтобы узнать, относятся ли эти параметры к HPUX ld. Извините, я больше не работаю, когда у меня был доступ к HPUX.

https://groups.google.com/d/msg/gnu.gcc.help/iWt83RMbt-8/rsAQ14_r-jgJ

+0

Они могут быть HPUX да. но теперь код переходит от hpux к linux; В любом случае это может быть ошибкой? $ gcc + Z gcc: + Z Нет такого файла или каталога gcc: нет входных файлов – Stefan

+1

Я определенно исключаю, что эти два параметра являются параметрами GCC. – dom0