GCC RX でstringのをインクルードするとビルドエラーになる

e2studio + GCC RX を使用して開発を行っていますが、

stringをインクルードするとエラーになってしまいます。

 

ターゲット              : RX62

開発環境                 : e2studio 6.2.0

ツールチェイン         : GCC for Renesas RX 4.8.4.201703

Language standard : -std=c++11

エラーメッセージ

記述/説明 リソース パス ロケーション タイプ
'__gnuc_va_list' has not been declared e2tets  行 207、外部ロケーション: c:\program files (x86)\gcc for renesas rx 4.8.4.201703-gnurx-elf\rx-elf\rx-elf\rx-elf\include\wchar.h C/C++ 問題

記述/説明 リソース パス ロケーション タイプ
'wint_t' does not name a type e2tets  行 151、外部ロケーション: c:\program files (x86)\gcc for renesas rx 4.8.4.201703-gnurx-elf\rx-elf\rx-elf\rx-elf\include\wchar.h C/C++ 問題

 

エラーメッセージは一部抜粋です。

wchar.h内の記述に対して宣言がないという内容のメッセージばかりです。

ソースコードは自動生成されるmainの.cppに対して

#include <string>

を追加しただけで、追記前は正常にビルドできていました。

 

解決方法をご存知の方がいらっしゃいましたらよろしくお願いいたします。

  • 確認しましたが optlib のヘッダを格納しているディレクトリがインクルードパスに登録されてると newlib との不整合からか #include<string> 等でエラーとなるようです。
    optlib は使用条件も不明な非オープンソース製品と思っていますが使用しないに越したことはないと思います。

  • optlibを外したら上記のエラーはなくなりました!
    なるほど、newlibのとの不整合ですか。
    optlibはデフォルトであったので無視していましたが、盲点でした。
    他のエラーも残っているので、実際の動作までは至っていませんが、
    おそらくこの問題は解決したと思います。
    大変助かりました!!