e2 studioでC++ソースでのINDEXER/CODANの調子が悪そうなので調べてみようと思います

こんにちは、NoMaYです。

昨日、別スレッドをきっかけに、最近のe2 studioでは(実は結構昔から?)プロジェクトウィザードでGNURXやCC-RXのC++プロジェクトを作成する場合にもRXスマートコンフィグレータを選択可能になっていることを知りました。同時に、C++ソースに対してはCソースよりもe2 studioのINDEXER/CODANの調子が悪そうなことも知りました。そこで、ちょっと調べてみようと思いました。出来れば改善策の落としどころも模索してみたいです。(でも、本来は、ルネサスさんに直して貰うべきものかな、とは思いますが。)

まずは、バグ一覧やFAQに何か記載されているか調べてみましたが、特にはありませんでした。

e² studio 2021-04 バグ一覧 (includeの文字列を検索)
www2.renesas.eu/_custom/software/ree_eclipse/e2studio8/docs/releasenotes/2021_04/openissues.htm

Google検索: "e2 studio" "C++" include site:ja-support.renesas.com/knowledgeBase
www.google.com/search?q=%22e2+studio%22+%22C%2B%2B%22+include+site%3Aja-support.renesas.com%2FknowledgeBase
www.google.com/search?q=%22e2+studio%22+%22C%2B%2B%22+include+site%3Aen-support.renesas.com%2FknowledgeBase

[関連スレッド]
e2 studioでビルドエラーが無いのに編集エラーが表示された時に試すと良いかも(workarounds for INDEXER/CODAN troubles)
japan.renesasrulz.com/cafe_rene/f/forum21/4564/e2-studio-workarounds-for-indexer-codan-troubles

続く。

以下、e2 studioでC++ソースでINDEXER/CODANが誤動作している例の画面コピーです。

現状はC++標準ヘッダファイルのインクルードパスがe2 studioに自動認識されていない


本来は以下のようにC++標準ヘッダファイルのインクルードパスがe2 studioに自動認識されているべき

 

  • こんにちは、NoMaYです。

    e2 studio 2021-07をインストールしましたので、まずは、状況が変化しているか/変化していないかを確認しました。変化していなかったです。ですので、作業を継続します。この後、e2 studio 2021-04でうまくいったっぽい回避策がe2 studio 2021-07でもうまくいくかどうかを確認します。

    続く。

    以下、e2 studioの画面コピーです。


     

  • こんにちは。NoMaYです。

    すみません、少し脱線しますが、e2 studio 2021-07を触っていて気付いたのですけれども、GNURX C++ FreeRTOSという組み合わせのプロジェクトが作れるようになっていました。追々ノウハウを積み重ねて行きたいところですかね。(実は単にバグだったというオチもあるかも知れませんけれども、、、)

    以下、e2 studioの画面コピーです。





     

  • NOMAY さん、ほや さん こんにちは

     『GCC RX でstringがインクルードできません』でお世話になった

     gNuco ぬこ です。

    ●e2stuio 2021-07 と諸々のアップグレード通知があり、さっそく使ってました。これまでは『実行ファイルが出来ている』けれど『 "Build Failed" ビルド失敗線宣告が出る』状態でした。同じプロジェクトをビルドし直すと

     Build Finished. 0 errors, 3 warnings.   と『失敗宣告』が亡くなりました。

    ●まだ編集画面では、インクルードで『プリプロセッサー組み込みが見つかりません』、string オブジェクト作成時に『型 std::string が解決できません』とういう警告が出ます。またビルド後も エクスプローラ も『赤印』が一杯ですが(下図)、とにかく『ビルド結果判定』の心配事は無くなりました。

    ●NoMaY さん、ほや さんのおかげでしょうか?お二人の背景は存じませんが、ありがとうございます。今後、安心して C++ for RX 道にまい進する事が出来ます。●また hirakuni45 さんが指摘された C++ 17 の件も、プロパティ のプルダウンメニューに std=gnu++ 1y という選択肢が出る様になっていました。まあ私は C++ 1y の高邁な思想を理解できない凡俗ですが、環境が整っていくことで安心感が得られます。はい、気持ちの問題だけです。●お二人のやり取りも難しくて理解できないのですが、とにかくありがとうございます。

  • こんにちは。NoMaYです。

    すみません、また少し脱線しますが、e2 studio 2021-07を触っていて気付いたのですけれども、LLVM-RL78 C++ RL78スマートコンフィグレータという組み合わせのプロジェクトが作れるようになっていました。たぶん、手作業で、RL78 FreeRTOSのソースを追加することが出来ると思います。こちらも追々ノウハウを積み重ねて行きたいところですかね。

    以下、e2 studioの画面コピーです。



    [追記]

    e2 studio 2021-07では、GNURL78 C++ RL78コード生成機能という組み合わせのプロジェクトも作れるようになっていたのでした。こちらも、手作業で、RL78 FreeRTOSのソースを追加することが出来ると思います。

    以下、e2 studioの画面コピーです。


     

  • こんにちは、NoMaYです。

    回避策ですが、以下のようにすると調子が良さそうです。なお、私の場合、スマートコンフィグレータを使わない、という選択肢は、まず無い、ですので、C++ソースとスマートコンフィグレータが生成したCソース(smc_genフォルダ)との混在を前提にしています。

    回避策:

    ● プロジェクト全体の設定

    Compiler CPPのcommandを以下のように変更する(コンパイラ規格は必要に応じて変更可能)

    rx-elf-gcc ⇒ rx-elf-g++ -std=gnu++17

    ● smc_genフォルダの設定

    Compiler CPPのcommandを以下のように変更する(コンパイラ規格はGNU99に決め打ち)

    rx-elf-gcc ⇒ rx-elf-gcc -std=gnu99

    以下、e2 studioの画面コピーです。

    回避策



    GNURXから取得した情報







    [追記]

    ビルド時

     

  • こんにちは。NoMaYです。

    以下の画面コピーのソースでC99とC++17としてe2 studioのINDEXER/CODANに認識されていることは確認してみました。




     

  • こんにちは。NoMaYです。

    唐突に、頭に思い浮かんだのですが、以前に投稿した以下のCS+ + CC-RX + Cプロジェクトのサンプルプログラムをe2 studio + GNURX + C++プロジェクトにしたサンプルプログラムを作って投稿してみるのも面白いかも知れない?と思いました。(実装の下層にはRXスマートコンフィグレータのConfigコンポーネントを使用(FITモジュールではなくConfigコンポーネントである理由は、まったくの私の好みによるもの、であって、FITに問題があったから、とかでは全然ありません)、また、C++プロジェクトといってもサンプルプログラム的には拡張子がcppになる程度ですけれど。)

    TB-RX65N/RX130/RX231+CSplus sample program

    サンプルプログラム置き場
    japan.renesasrulz.com/cafe_rene/m/sample_program/460

    かふぇルネのスレッド
    japan.renesasrulz.com/cafe_rene/f/002-2095199602/6870/tb-rx65n-rx130-rx231-csplus-sample-program
     

  • こんにちは。NoMaYです。

    ものは試しで、CS+ + CC-RX + Cプロジェクトのサンプルプログラムをe2 studio + GNURX + C++プロジェクトにしたサンプルプログラムを作ってみようとしたら、以下の画面コピーのプログラムで、e2 studioのINDEXER/CODANがcoutとendlを認識してくれないことに気付きました。まだまだ何かあるようですね、、、う~ん、、、

    以下、e2 studioの画面コピーです。


     

  • > e2 studioのINDEXER/CODANがcoutとendlを認識してくれないことに気付きました
    preprpcessor の設定にヘッダパスを追加していても?