初学者です。
e2studioで作成されたプロジェクトをCS+に変換したのですが、コンパイラバージョンによってビルドできなくなり困っています。
具体的には、
バージョンV3.03.00ではビルドできますが、
バージョンV1.02.01ではビルドできません。
最終的にはV1.02.01でビルドしたいと考えています。
また、ビルド時には以下のエラーメッセージが出ます。
(E) C3305 (F) (0) : C3305 (F) Invalid command parameter "obj_path" (プロジェクトファイル名).mtpj
ご助言の程、よろしくお願いします。
beginnerさん、こんにちは。NoMaYと申します。いきなり裏技から入って恐縮ですけれども、一例としてですが以下のようなrcpcファイルだったとした場合、赤文字行をエディタで削除してしまってからCS+に読み込ませてはどうでしょうか?(ちなみに、マイコンはRXマイコン、ですよね?)[追記] ちなみに、CS+ V8.09ですと、-obj_pathの行は自動的に無視されて読み込まれるようなのですけれど、そちらのe2 studioとCS+のバージョンは幾つでしょうか?[ここまで追記]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><MicomToolCommonProjectFile Version="1.00"> <CreatorType Name="e2studio" Version=""/> <Placeholders> <PlaceholderPrefix>${</PlaceholderPrefix> <PlaceholderPostfix>}</PlaceholderPostfix> </Placeholders> <Project Name="TestSCCCRX" Type="Application"> <Files> 。。。途中省略。。。 </Files> <Device Category="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.cpu.rx600" Series="RX">R5F565NEDxFP</Device> <BuildOptions Name="CC-RX" Version="v3.05.00"> <BuildMode Active="True" Name="HardwareDebug"> <GeneralOptions/> <CompileOptions> <Option>-isa=rxv2</Option> <Option>-fpu</Option> <Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</Option> <Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</Option> <Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_config"</Option> <Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_bsp"</Option> <Option>-utf8</Option> <Option>-nomessage</Option> <Option>-debug</Option> <Option>-outcode=utf8</Option> <Option>-nologo</Option> <Option>-lang=c99</Option> <Option>-lang=cpp</Option> <Option>-output=obj=${CONFIGDIR}\${FILELEAF}.obj</Option> <Option>-obj_path=${CONFIGDIR}</Option> ← 削除 </CompileOptions> 。。。途中省略。。。 </BuildMode> <BuildMode Active="False" Name="Debug"> <GeneralOptions/> <CompileOptions> <Option>-isa=rxv2</Option> <Option>-fpu</Option> <Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</Option> <Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</Option> <Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_config"</Option> <Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_bsp"</Option> <Option>-utf8</Option> <Option>-nomessage</Option> <Option>-debug</Option> <Option>-outcode=utf8</Option> <Option>-nologo</Option> <Option>-lang=c99</Option> <Option>-lang=cpp</Option> <Option>-output=obj=${CONFIGDIR}\${FILELEAF}.obj</Option> <Option>-obj_path=${CONFIGDIR}</Option> ← 削除(ビルドモードが1つだけなら存在しません) </CompileOptions> 。。。途中省略。。。 </BuildMode> </BuildOptions> </Project></MicomToolCommonProjectFile>
ありがとうございます!
ビルドが通るようになりました!
下記、追記のご質問に回答します。
CS+ : V8.05.00
e2studio : 2023-01
です。
今回の原因としては、
旧コンパイラバージョン(V1.02.01)では必要だったが、新コンパイラバージョン(V3.03.00)では不要なコンパイラオプションがあり、CS+のバージョンが少し古かったために齟齬が起きたという認識でいいのでしょうか?
beginnerさん、こんにちは。NoMaYです。いえ、違うと思うのです。(私はルネサスさんの中の人では無いです。) 今、以下のスレッドに取り組んでいるのですけれども、しばしば困惑するのが、e2 studioがルネサスコンパイラのアンドキュメンテッドなオプションをポンポンと使っていることです。(そのおかげで以下のスレッドにも取り組めるのですけれども、) それらは、基本的には以下の(1)のタイプですけれども、今回のような(2)のタイプもあるようですね。(1) -MMとか-MTとか明らかに機能が割り付けられているもの(ヘルプに記載はありません)(2) -obj_pathとか他のコンパイラ向けのオプションが間違って使われていると思われるもの(-obj_pathはCC-RL向けのものです)(2') ただルネサスコンパイラ側も3つあるコンパイラ間でのソース共有の事情等でエラーにならない場合があるe2 studioでCMakeでビルドする、というアプリケーションノートがあるのですがスマートコンフィグレータは使えるのでしょうか?community-ja.renesas.com/cafe_rene/forums-groups/tools/f/forum21/7713/e2-studio-cmake今回の-obj_pathに関しては、以下のように、既にCC-RX V2.00.00でもエラーにはなりません。そして推測ですが、素朴にフールプルーフ処置として、CS+のどれかのバージョンから、そのようなオプションは無視するようになったのではないでしょうかね。思うに、齟齬、というより、e2 studioのバグが(たまたまにせよ)回避されるようになった、ということではないかと思うのです。
エラーにならないオプション(ヘルプに記載はありません(なお上に書いたように以下は(当時存在していなかった)CC-RLのものです))
>C:\Renesas\CS+\CC\CC-RX\V2.00.00\bin\ccrx -obj_pathRX Family C/C++ Compiler V2.00.00 [18 Mar 2013]RX Family Assembler V2.00.00 [15 Feb 2013]Renesas Optimizing Linker W1.00.00 [12 Dec 2012]Copyright (C) 2011, 2013 Renesas Electronics CorporationCopyright (C) 2003-2012 University of Illinois at Urbana-Champaign.All rights reserved.W0511172:Nothing to compile, assemble or link.(input and output combination)E0511165:Lacking cpu specification. ← -obj_pathオプションのエラーではありません
エラーになるオプション(ヘルプに記載はありません(なお以下も当時存在していなかったCC-RHのものです))
>C:\Renesas\CS+\CC\CC-RX\V2.00.00\bin\ccrx -Xobj_pathRX Family C/C++ Compiler V2.00.00 [18 Mar 2013]RX Family Assembler V2.00.00 [15 Feb 2013]Renesas Optimizing Linker W1.00.00 [12 Dec 2012]Copyright (C) 2011, 2013 Renesas Electronics CorporationCopyright (C) 2003-2012 University of Illinois at Urbana-Champaign.All rights reserved.E0511108:The "-xobj_path" option is not recognized.