& quot; Extra ‘;’ & Quot; ошибка компиляции в проекте Xcode C ++

У меня есть проект C ++ Xcode 3, сгенерированный из сценариев CMake. Он использует некоторые заголовки с открытым исходным кодом, которые всегда работали раньше, но в этом проекте я получаю ошибку компиляции Extra ';' когда в конце скобки есть лишняя точка с запятой:

if(...)
{
...
};

Есть ли какая-либо опция компилятора, которая делает завершающие точки с запятой ошибкой, которую я могу отключить?

Вот один из оскорбительных файлов, см. Строку 259: http://zziplib.svn.sourceforge.net/viewvc/zziplib/trunk/zzip-0/zzip/zzip.h?revision=523&Вид = разметки

1

Решение

Предупреждение о точке с запятой предоставлено -pedantic (или же -pedantic-errors) вариант; Я не думаю, что вы можете отключить его отдельно.

Я бы рекомендовал удалить точку с запятой, а не предупреждение.

4

Другие решения

Дополнительная точка с запятой в примере кода, который вы нам показали:

if(...)
{
...
};

совершенно законно; это пустое утверждение.

Ошибка, которую вы получаете, на самом деле о лишней точке с запятой на extern "C", Следующее появляется в трех исходных файлах в zziplib библиотека:

#ifdef __cplusplus
extern "C" {
#endif

...

#ifdef __cplusplus
};
#endif

На самом деле это синтаксическая ошибка. Некоторые компиляторы могут не жаловаться на это, или могут выдавать только предупреждение, но с g++ -pedantic-errors это фатальная ошибка

Я сообщил об этой проблеме сопровождающему zziplibи я только что получил ответ:

Thanks for pointing to the problem, fixed in r524 now. I will
probably roll a public release next month (still need to check
the win32 version).

best regards, Guido Draheim

ChangeLog:

2012-09-15  guidod  <[email protected]>
* zzip.h, plugin.h: "};" at end of extern-C produces build errors with
the default --pedantic-errors on newer CMake. Thanks to Keith Thompson
recognizing it - see http://stackoverflow.com/questions/12384280/
2

По вопросам рекламы [email protected]