Відповіді:
Прямо з документів :
-fpermissive
Зменшіть деяку діагностику щодо невідповідного коду від помилок до попереджень. Таким чином, використання-fpermissive
дозволить скомпілювати деякий невідповідний код.
Підсумок: не використовуйте його, якщо ви не знаєте, що ви робите!
-fpermissive
Прапор змушує компілятор повідомляти деякі речі, які на насправді помилки (але допускаються деякі компілятори) в якості попередження, щоб код дозволу компілює , навіть якщо він не відповідає правилам мови. Ви дійсно повинні вирішити основну проблему. Опублікуйте найменший, складений зразок коду, який демонструє проблему.
-fpermissive
Зменшіть деяку діагностику щодо невідповідного коду від помилок до попереджень. Таким чином, використання-fpermissive
дозволить скомпілювати деякий невідповідний код.
Коли ви написали щось, що не дозволено мовним стандартом (і тому насправді не може бути чітко визначеної поведінки, що достатньо причин, щоб цього не робити), але трапляється нанести на карту якийсь виконуваний файл, якщо подавати наївно двигун компіляції, тоді -fpermissive
зробить саме це, а не зупинятися з цим повідомленням про помилку. У деяких випадках програма буде поводитись так, як ви спочатку планували, але ви точно не повинні покладатися на неї, якщо у вас немає особливих причин не використовувати якесь інше рішення.
Якщо ви хочете для цього використовувати реальний випадок використання, спробуйте скласти дуже стару версію X Windows-- скажімо, або XFree86, або XOrg з aboout 2004, прямо навколо розколу - використовуючи "сучасну" (кашлю) версію gcc , наприклад 4.9.3.
Ви помітите, що CFLAGS збірки вказує і "-ansi", і "-pedantic". Теоретично це означає: "підірвати, якщо щось навіть трохи порушує мовну специфікацію". На практиці серія 3.x gcc не сприймає такої речі, і побудова її з 4.9.3 не залишить отворів для куріння в землі, якщо ви не встановите CFLAGS та BOOTSTRAPCFLAGS на "-permismissive".
Використовуючи цей прапор, більшість цих файлів на C фактично буде створено, залишаючи вас вільним переходити до уламків, залежних від версії, які буде генеруватися лексером. =]