あなたが示したサンプルコードの余分なセミコロン:
if(...)
{
...
};
完全に合法です。それは無効なステートメントです。
あなたが得ているエラーは、実際には.上の余分なセミコロンに関するものextern "C"
です. zziplib
以下は、ライブラリ内の 3 つのソース ファイルに表示されます。
#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 <guidod@gmx.de>
* 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/