標準ライブラリ(ctype.h)のコンパイルエラーについて
ardupilotというオープンソースのソースを改変しながら開発を進めています。
最近g++でビルドした際に標準ライブラリ内でエラーが発生するようになりました。エラー内容は以下の通りです(環境はubuntudです)。
In file included from /usr/include/c++/5/bits/basic_ios.h:37:0,
from /usr/include/c++/5/ios:44,
from /usr/include/c++/5/ostream:38,
from /usr/include/c++/5/iostream:39,
from ../../libraries/AP_IRLock/AP_IRLock_SITL.cpp:30:
/usr/include/c++/5/bits/locale_facets.h:2601:44: error: macro "isdigit" passed 2 arguments, but takes just 1
isdigit(_CharT __c, const locale& __loc)
^
compilation terminated due to -Wfatal-errors.
内容から察するにlocale_facets.hでしようされているisdigit関数の引数が2つ指定されているが、ctype.h内のisdigit関数の引数は1つしか要求していないということだと思います。
事実、/usr/include/c++/5/bits/locale_facets.h内のisidigitと/usr/include/ctype.h内のisdigitが異なっていることは確認できています。
g++のバージョンを4.7に変更したりしましたが、ダメでした。
ちなみに今のg++のバージョンは5.4.1です。
g++,gccの際インストール等も行いましたが、結果はダメでした。
どなたか助けてください。