FITモジュールをrx-elf-gccでビルドする際にエラーが発生します。

はじめまして。

e2studio 2020-07 を使用しています。

コンパイラは、e2studioと一緒にインストールした GCC for Renesas 8.3.0.201904-GNURX Toolchain を使用しています。

https://github.com/renesas-rx/rx-driver-package/tree/master/FITModules からダウンロードした、r_sdc_sdio_rx_v2.00 を組み込んでビルドしたところ、下記の様なエラーが出てビルドに失敗します。

エラーの発生したソースファイルを選択して、1ファイルのみビルドするとエラーにはなりません。プロジェクト全体をビルドした時だけエラーになります。

何か考えられる原因はありますでしょうか?


 

../src/smc_gen/r_sdhi_rx/src/targets/rx65n/r_sdhi_dev.c:43:10: fatal error: platform.h: No such file or directory
 #include "platform.h"
          ^~~~~~~~~~~~
compilation terminated.
../src/smc_gen/r_sdhi_rx/src/targets/rx65n/r_sdhi_register.c:39:10: fatal error: platform.h: No such file or directory
 #include "platform.h"
          ^~~~~~~~~~~~
compilation terminated.
../src/smc_gen/r_sdhi_rx/src/r_sdhi_int.c:42:10: fatal error: r_sdhi_rx_if.h: No such file or directory
 #include "r_sdhi_rx_if.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
make: *** [src/smc_gen/r_sdhi_rx/src/targets/rx65n/r_sdhi_dev.o] Error 1
make: *** Waiting for unfinished jobs....
../src/smc_gen/r_sdhi_rx/src/r_sdhi_open.c:43:10: fatal error: r_sdhi_rx_if.h: No such file or directory
 #include "r_sdhi_rx_if.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
make: *** [src/smc_gen/r_sdhi_rx/src/targets/rx65n/r_sdhi_register.o] Error 1
../src/smc_gen/r_sdhi_rx/src/r_sdhi_util.c:43:10: fatal error: r_sdhi_rx_if.h: No such file or directory
 #include "r_sdhi_rx_if.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
make: *** [src/smc_gen/r_sdhi_rx/src/r_sdhi_int.o] Error 1
make: *** [src/smc_gen/r_sdhi_rx/src/r_sdhi_open.o] Error 1
../src/smc_gen/r_sdc_sdio_rx/src/sdio/r_sdc_sdio_direct.c:42:10: fatal error: r_sdc_sd_rx_if.h: No such file or directory
 #include "r_sdc_sd_rx_if.h"
          ^~~~~~~~~~~~~~~~~~
make: *** [src/smc_gen/r_sdhi_rx/src/r_sdhi_util.o] Error 1
compilation terminated.
../src/smc_gen/r_sdc_sdio_rx/src/sdio/r_sdc_sdio_crc.c:41:10: fatal error: r_sdc_sd_rx_if.h: No such file or directory
 #include "r_sdc_sd_rx_if.h"
          ^~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [src/smc_gen/r_sdc_sdio_rx/src/sdio/r_sdc_sdio_direct.o] Error 1
make: *** [src/smc_gen/r_sdc_sdio_rx/src/sdio/r_sdc_sdio_crc.o] Error 1
../src/smc_gen/r_sdc_sdio_rx/src/sdio/r_sdc_sdio_initialize.c:45:10: fatal error: r_sdc_sd_rx_if.h: No such file or directory
 #include "r_sdc_sd_rx_if.h"
          ^~~~~~~~~~~~~~~~~~
compilation terminated.

  • 自己解決しました。
    使用される make.exe の問題でした。
    PATH で、DS-5 の make.exe が使用される様になっていました。cygwin の make.exe が使用される様に PATH を修正したところ、エラーが発生しなくなりました。
  • 追加情報です。
    RX GCC 8.3.0 のインストールフォルダに Other Utilities というフォルダがあり、この中に make.exe がありました。このフォルダを PATH に追加するのが正解だと思います。
    自動で登録されないことに不満はありますが…
  • kazuhさん、こんにちは。NoMaYと申します。

    私の手元では特にPATHに追加せずともe2 studioの中でe2 studio同梱のmakeを使えていますよ。(そのPCには他のmakeをインストールしたことは無いです。ちなみに、kazuhさんが見つけたのはGNURX同梱のmakeなのですが、e2 studio自体にもmakeが同梱されています。) ひょっとしたら、e2 studioがmakeを起動する時に、e2 studio同梱のmakeのパスがPATHの最後に追加されていたりするのかも、、、

    そう思って調べてみたところ、案の定、PATHの最後に追加されてました。この順番だと、好みのmakeを使えるというメリットはありますが、kazuhさんのように混乱の元でもありますね、、、

    C:/Renesas/e2studio64/eclipse//plugins/com.renesas.runtime.javahotspot.win32.x86_64_11.0.7.202004170812/jdk-11.0.7+10-jre/bin/client;
    C:/Renesas/e2studio64/eclipse//plugins/com.renesas.runtime.javahotspot.win32.x86_64_11.0.7.202004170812/jdk-11.0.7+10-jre/bin;
    途中省略
    C:\WINDOWS\system32;
    C:\WINDOWS;
    C:\WINDOWS\System32\Wbem;
    C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
    C:\WINDOWS\System32\OpenSSH\;
    途中省略
    C:\Renesas\e2studio64\eclipse;
    C:\Renesas\e2studio64\eclipse\/../SupportFiles/.eclipse/com.renesas.platform_1874727858/Utilities/

    [追記]

    ちなみに、私はe2 studioのSupportFilesフォルダの位置をデフォルトから変更していますので、e2 studioインストールフォルダ\eclipse\..\SupportFiles\の下にありますが、デフォルトではWindowsのユーザフォルダのずっと下の方だったと思います、、、

  • NoMaY さん、こんにちは、kazuh です。
    ご回答ありがとうございます。

    該当のPCを確認しましたが、Windowsユーザーフォルダの中に、.eclipse\com.renesas.platform_2042840504\Utilities があり、そこに、make.exe もありました。

    しかし、e2studio を起動しても、PATHに追加されない様です。
    実際、Windowsの環境変数 PATH から、DS-5 や Cygwin のmake.exe の入っているフォルダを削除し、コマンドプロンプトで、make を実行してみて、make が見つからないことを確認した状態で、e2studio を起動してビルドを行うと「エラー: PATH でプログラム "make" が見つかりません」となります。
    このとき、PATHの内容も表示されますが、上記の Utilities フォルダは追加されていませんでした。

    たまたま、ほぼ、まっさらな Windows10 PCがありましたので、e2studio 2020-07 をセットアップして、同じプロジェクトをビルドしたところ、「エラー: PATH でプログラム "make" が見つかりません」となりました。
    Windowsのユーザーフォルダに、.eclipse\com.renesas.platform_2042840504\Utilities は入っていますが、実行時にPATHには追加されない様です。
  • kazuhさん、こんにちは。NoMaYです。

    > e2studio を起動してビルドを行うと「エラー: PATH でプログラム "make" が見つかりません」となります。

    これは、e2 studioあるある、の以下のFAQのことではないかという気がするのですが、でもGNURXをインストーラでインストールすればインストール後のe2 studioの起動時に自動的に認識されて何かダイアログが表示されて通常はそこでe2 studioにGNURXを組み込むのですが、何もダイアログは表示されませんでしたでしょうか?あっ、それとも、もしかしたら[←これは別の話題かも知れません] 別のバージョンのGNURXで作成されたプロジェクトを開いて作業されようとしていますか?

    以下はCC-RXの場合ですが、GNURXでも同様です。

    RX65N Envision Kitの環境について
    japan.renesasrulz.com/cafe_rene/f/002-2095199602/5906/rx65n-envision-kit/32770#32770

    e2sutidoで他の人が作ったプロジェクトを開くには?
    japan.renesasrulz.com/cafe_rene/f/forum21/5061/e2sutido/28494#28494

    FAQ 3000404 : インポートしたプロジェクトをビルドすると「PATH でプログラム "make" が見つかりません」エラーになる(e² studio)
    ja-support.renesas.com/knowledgeBase/18367361
     

  • NoMaY さん、こんにちは、kazuh です。
    ご回答ありがとうございます。

    確かに他の人が作ったプロジェクトを使っていますが、同じバージョンの GCC RX を使用しています。
    make の PATH を追加しただけで、ビルドは通りましたので、実行時に Utilities フォルダが PATH に追加されないだけだと思います。
  • kazuhさん、こんにちは。NoMaYです。

    バージョンが同じとなると、先ほどの私のリプライで取り消し線で消した部分の話になるのですが、やはり確認しておいた方が良いかなと思い直したのですが、以下のFAQにあるようにツールの登録は行われていますか?FAQ内の画面コピーのようにチェックマークが付いていないといけないですが、チェックマークが外れているということは無いですか?その前に、e2 studioの起動時にe2 studioが新規に認識されたGNURXを登録するか尋ねて来たかとは思うのですが実際どうでしたでしょうか?(もしかしたら尋ねて来なかったとか?) GNURXが登録されていないと、GNURXのパスが追加されないだけでなくmakeのパスもPATHに追加されない仕組みになっているのです。

    FAQ 3000099 : e² studioでツールチェーンを使えるようにするには
    ja-support.renesas.com/knowledgeBase/17797630

    なお、64bit版e2 studioでは設定ダイアログのRenesasカテゴリはCカテゴリの下ではなくルートにあります。

  • NoMaY さん、こんにちは、kazuh です。

    > FAQ内の画面コピーのようにチェックマークが付いていないといけないですが、チェックマークが外れているということは無いですか?

    チェックマークは付いています。

    > その前に、e2 studioの起動時にe2 studioが新規に認識されたGNURXを登録するか尋ねて来たかとは思うのですが実際どうでしたでしょうか?(もしかしたら尋ねて来なかったとか?)

    尋ねられて、OK しました。(OKだったかはわかりませんが、拒否はしていません。)
  • kazuh さん
    ほや です。こんにちは。

    新規に作成したGNURXのプロジェクトはビルドできるのですよね?
    ビルドできるならtoolchainの登録やらPATHやらには問題ないはず。それもだめなら根本的に何か抜けてます。

  • kazuhさん、こんにちは。NoMaYです。

    先ほどの ほや さんのアドバイスのとおり、インポートしたプロジェクトでビルド出来ない(今回はe2 studioがe2 studio同梱のmakeを呼び出せない)場合の次の確認は、ゼロから作成したプロジェクト(ごく簡単なもので構わない)ではどうなるか?ですね。確かにそうですね。

    そして、その次ぐらいが e2 studio v2020-07+GCC for Renesas 8.3.0.201904-GNURX Toolchain で実際にビルド出来ていたプロジェクト(ごく簡単なもので構わない)をインポートしてビルド出来るかどうか?でしょうかね。(これは私がチャチャっと作成して提供可能です。)

    ゼロから作成したプロジェクトを試す

    → ビルドに失敗する(同じ現象が再現する)
      → kazuhさんの環境依存の何かがある(でも既にkazuhさんは2台のPCで同じ症状になることを確認済み。)

    → ビルドに成功する
      → そのプロジェクトに問題あり?
        → .projectと.cprojectをzipファイルに固めて投稿する
          → 別の人の環境で試してもらう
        → 実際にビルド出来ていたプロジェクト(ごく簡単なもので構わない)を入手して試す