функция stati c без прототипа (разрешен компилятор AIX, g cc нет) - PullRequest
1 голос
/ 30 апреля 2020

Я пытаюсь перенести большой набор модулей из AIX в Linux. К сожалению, компилятор AIX xl c позволил вам определить функцию stati c и использовать ее до определения без прототипа. Не хорошо, но, по крайней мере, вы получаете правильную область действия. В любом случае, код есть, и я не могу заставить его скомпилировать на Linux без явного добавления прототипа * stati c.

Итак, есть ли способ запретить "stati *" Декларация 1010 * следует за нестати c декларация "ошибка в g cc (или вместо серьезной ошибки сделать это предупреждением), или мне нужно редактировать каждый из этих модулей, чтобы добавлять прототипы, где бы они ни отсутствовали? Насколько я понимаю, это тот случай, когда стандартное поведение не определено - так что это немного противно, если g cc не позволит вам ослабить свой внутренний стандарт, чтобы допустить код, компилируемый в другом месте, нет ...

1 Ответ

0 голосов
/ 30 апреля 2020

Это было серьезной ошибкой в ​​G CC с 2004 года. Единственный способ получить это для компиляции - это перейти на действительно старую версию G CC. Я проверил, что G CC 3.4.6 все еще компилирует это, но G CC 4.0.3 не делает.

Конечно, в зависимости от вашей цели, получение G CC 3.4 может быть близко к невозможному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...