こんにちは。NoMaYです。別スレッドで、e2 studio v6(そのスレッドではv6.1.0)でビルドしようとするとソースコードを全く変更していないのに全ビルドが行われてしまう現象に遭遇したので、原因を調べてみたところ、v6では以下のDependency_Scan_Preferences.prefsファイルが.settingsフォルダに必ず必要であることが分かりました。(今までは、そのようなことは無かった、のですが、、、).settings\Dependency_Scan_Preferences.prefs
DependecyMode=ScanBuildDepeclipse.preferences.version=1
そのスレッドでは、ちょっと変則的なことをしましたが、基本的にはe2 studio v4.0.2のプロジェクトをe2 studio v6.1.0にインポートして古いe2studioプロジェクトを更新するのと同じことをした筈でした。ですが、上記のようにe2 studio v6が変わっていたことに気付かなかったので、その時に生成された上記ファイルをプロジェクトを固めたzipファイルに含めませんでした。その結果、このような現象に遭遇することになってしまいました。その時の作業をやり直してみると、以下のようなファイルが生成されており、削除していなければ現象は発生しなかった筈でした。ちなみに、上記ファイルの他にもうひとつ生成されていました。(最後の数値1894558540は.cprojectファイル内の値と連動していて、.cproject内の値ともども何らかの仕組みで適宜異なる値が生成されるようです。).settings\Dependency_Scan_Preferences.prefs
.settings\e2studio_project.prefs
##Sat Dec 23 14:08:54 JST 2017settingConfiguration=com.renesas.cdt.managedbuild.renesas.ccrx.hardwaredebug.configuration.1894558540activeConfiguration=com.renesas.cdt.managedbuild.renesas.ccrx.hardwaredebug.configuration.1894558540
以下、そういったことに気付くまでにe2 studio v5.4.0とe2 studio v6.1.0で色々と調査した結果です。(結局は自分の作業ミスであり、分かった時はガックリしましたが、この際ですので投稿しておきます。)(1) e2 studio v5.4.0の場合以下の設定でプロジェクトを生成させました。生成されたファイルは以下の通りです。.settings\Dependency_Scan_Preferences.prefs
Build\ project\ excluding\ the\ dependencies=false Re-generate\ and\ use\ dependencies\ during\ project\ build=true Use\ existing\ dependencies\ during\ project\ build=false eclipse.preferences.version=1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <FITMODULE xmlns:ns2="com.renesas.tools.fitconfigurator.settings.SerializeData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=""> <fitProject>true</fitProject> </FITMODULE>
com.renesas.cdt.renesas.Assembler.option.userDefine=-nologo;;; com.renesas.cdt.renesas.Compiler.option.C=com.renesas.cdt.renesas.Compiler.option.C99 com.renesas.cdt.renesas.Compiler.option.UserDef=-nologo; com.renesas.cdt.renesas.Compiler.option.defines=__RX\=1; com.renesas.cdt.renesas.Compiler.option.deviceShortName=R5F52318AxFP com.renesas.cdt.renesas.Compiler.option.incFileDirectories="${TCINSTALL}/include"; com.renesas.cdt.renesas.Configurator.option.cfgPath="" com.renesas.cdt.renesas.Configurator.option.rtosName=None com.renesas.cdt.renesas.Configurator.option.rtosPath="" com.renesas.cdt.renesas.Configurator.option.rtosVersion=None com.renesas.cdt.renesas.Linker.option.rom=D\=R;D_1\=R_1;D_2\=R_2; com.renesas.cdt.renesas.Linker.option.typeOfOutputFileOption=Stype via absolute com.renesas.cdt.renesas.StandardLibrary.option.complexC99=false com.renesas.cdt.renesas.StandardLibrary.option.ctypec89=false com.renesas.cdt.renesas.StandardLibrary.option.fenvC99=false com.renesas.cdt.renesas.StandardLibrary.option.inttypesC99=false com.renesas.cdt.renesas.StandardLibrary.option.libConfiguration=C99 com.renesas.cdt.renesas.StandardLibrary.option.mathc89=false com.renesas.cdt.renesas.StandardLibrary.option.mathfc89=false com.renesas.cdt.renesas.StandardLibrary.option.mode=com.renesas.cdt.renesas.StandardLibrary.option.buildOnlyWhenOptionsChanged com.renesas.cdt.renesas.StandardLibrary.option.runtime=true com.renesas.cdt.renesas.StandardLibrary.option.rxccomplexCPP=false com.renesas.cdt.renesas.StandardLibrary.option.rxciosCPP=false com.renesas.cdt.renesas.StandardLibrary.option.rxcnewCPP=true com.renesas.cdt.renesas.StandardLibrary.option.rxcstringCPP=false com.renesas.cdt.renesas.StandardLibrary.option.stdargc89=false com.renesas.cdt.renesas.StandardLibrary.option.stdioc89=true com.renesas.cdt.renesas.StandardLibrary.option.stdlibc89=true com.renesas.cdt.renesas.StandardLibrary.option.stringc89=true com.renesas.cdt.renesas.StandardLibrary.option.wcharC99=false com.renesas.cdt.renesas.StandardLibrary.option.wctypeC99=false com.renesas.cdt.rxc.HardwareDebug.Assembler.option.endian=Little-endian data com.renesas.cdt.rxc.HardwareDebug.Compiler.option.RAM=None com.renesas.cdt.rxc.HardwareDebug.Compiler.option.ROM=None com.renesas.cdt.rxc.HardwareDebug.Compiler.option.address=00000000 com.renesas.cdt.rxc.HardwareDebug.Compiler.option.addressRegister=None com.renesas.cdt.rxc.HardwareDebug.Compiler.option.allocLowerBit=Lower bit com.renesas.cdt.rxc.HardwareDebug.Compiler.option.cpuType=RX200 com.renesas.cdt.rxc.HardwareDebug.Compiler.option.denormalized=false com.renesas.cdt.rxc.HardwareDebug.Compiler.option.endian=Little-endian data com.renesas.cdt.rxc.HardwareDebug.Compiler.option.enumSize=false com.renesas.cdt.rxc.HardwareDebug.Compiler.option.packStructures=false com.renesas.cdt.rxc.HardwareDebug.Compiler.option.patchCode=None com.renesas.cdt.rxc.HardwareDebug.Compiler.option.precisionDouble=Single precision com.renesas.cdt.rxc.HardwareDebug.Compiler.option.registerFastInterrupt=None com.renesas.cdt.rxc.HardwareDebug.Compiler.option.replaceFromIntWithShort=false com.renesas.cdt.rxc.HardwareDebug.Compiler.option.roundTo=Nearest com.renesas.cdt.rxc.HardwareDebug.Compiler.option.saveacc=false com.renesas.cdt.rxc.HardwareDebug.Compiler.option.signBitField=unsigned com.renesas.cdt.rxc.HardwareDebug.Compiler.option.signChar=unsigned com.renesas.cdt.rxc.HardwareDebug.Compiler.option.useDynamic=false com.renesas.cdt.rxc.HardwareDebug.Compiler.option.useTry=false com.renesas.cdt.rxc.HardwareDebug.Compiler.option.widthDivergence=24 bit com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.endian=Little-endian data eclipse.preferences.version=1
<SerializableData> <SerializableData name="17c20985-edce-4aa7-9dc4-4f3bfd8d7ccf"> 途中省略(コード生成機能の各設定対象の個別設定データ) </SerializableData> <SerializableData name="3bec8c90-e2aa-4e26-8743-33a781338df7"> <DataElement key="display" value="Device_PlatformCategory_RX231_512KB_R5F52318AxFP_Display"> </DataElement> <DataElement key="romstartaddress" value="FFF80000"> </DataElement> <DataElement key="name" value="R5F52318AxFP"> </DataElement> <DataElement key="mcutypedisplay" value="Device_PlatformCategory_RX"> </DataElement> <DataElement key="chipid" value="R5F52318AxFP"> </DataElement> <DataElement key="devicename" value="RX231"> </DataElement> <DataElement key="pin" value="100"> </DataElement> <DataElement key="devicenamedisplay" value="Device_PlatformCategory_RX231"> </DataElement> <DataElement key="romendaddress" value="FFFFFFFF"> </DataElement> <DataElement key="ramendaddress" value="0000FFFF"> </DataElement> <DataElement key="descriptor" value="Device_PlatformCategory_RX231_512KB_R5F52318AxFP_Description"> </DataElement> <DataElement key="mcutype" value="RX"> </DataElement> <DataElement key="id" value="R5F52318AxFP"> </DataElement> <DataElement key="ramstartaddress" value="00000000"> </DataElement> <DataElement key="rom" value="512KB"> </DataElement> <SerializableData name="category"> <DataElement key="display" value="Device_PlatformCategory_RX231_512KB"> </DataElement> <DataElement key="id" value="PlatformCategory_RX231_512KB"> </DataElement> <DataElement key="name" value="RX231_512KB"> </DataElement> <SerializableData name="category"> <DataElement key="display" value="Device_PlatformCategory_RX"> </DataElement> <DataElement key="id" value="PlatformCategory_RX"> </DataElement> <DataElement key="name" value="RX"> </DataElement> </SerializableData> </SerializableData> </SerializableData> <SerializableData name="fd9225c4-f97d-4baa-a04b-c69949a0f486"> <DataElement key="class" value="RenesasElectronics.MicomTool.CodeGenerator.Projects.ProjectRX.ProjectRXCreator"> </DataElement> <DataElement key="fileext" value=".cgp"> </DataElement> <DataElement key="id" value="Project_RX"> </DataElement> <DataElement key="icon" value="Icons_Project_RX"> </DataElement> <DataElement key="display" value="Project_RX_Display"> </DataElement> <DataElement key="guid" value="{86E668EF-B34B-4733-82CB-72E453160D92}"> </DataElement> <DataElement key="descriptor" value="Project_RX_Description"> </DataElement> <DataElement key="name" value="ProjectRX"> </DataElement> </SerializableData> <SerializableData name="9c804212-9f3e-4926-8eef-132c7518dc34"> <DataElement key="class" value="RenesasElectronics.MicomTool.CodeGenerator.Compilers.CompilerCCRX.CompilerCreatorCCRX"> </DataElement> <DataElement key="id" value="Compiler_CCRX"> </DataElement> <DataElement key="icon" value="Icons_Compiler_CCRX"> </DataElement> <DataElement key="display" value="Compiler_CCRX_Display"> </DataElement> <DataElement key="guid" value="{F31F4D9E-990A-4f28-82D9-AA346DEDBDA7}"> </DataElement> <DataElement key="descriptor" value="Compiler_CCRX_Description"> </DataElement> <DataElement key="name" value="CCRX"> </DataElement> </SerializableData> </SerializableData>
# #Fri Dec 22 20:18:16 JST 2017 CGExist=true
Build\ project\ excluding\ the\ dependencies=trueRe-generate\ and\ use\ dependencies\ during\ project\ build=falseUse\ existing\ dependencies\ during\ project\ build=falseeclipse.preferences.version=1
'Building file: ../src/rx231.c''Invoking: Compiler'ccrx -lang=c99 -output=obj="src/rx231.obj" -include="C:\Renesas\CS_~1\CC\CC-RX\V203~1.00/include" -debug -nomessage -isa=rxv2 -fpu -nologo -define=__RX=1 "../src/rx231.c"'Finished building: ../src/rx231.c'
(1-2) 依存関係をスキャンしてプロジェクトをビルド (これがデフォルトです)
Build\ project\ excluding\ the\ dependencies=falseRe-generate\ and\ use\ dependencies\ during\ project\ build=trueUse\ existing\ dependencies\ during\ project\ build=falseeclipse.preferences.version=1
'Scanning and building file: ../src/rx231.c''Invoking: Scanner and Compiler'ccrx -MM -MP -output=dep="src/rx231.d" -MT="src/rx231.obj" -MT="src/rx231.d" -lang=c99 -include="C:\Renesas\CS_~1\CC\CC-RX\V203~1.00/include" -debug -nomessage -isa=rxv2 -fpu -nologo -define=__RX=1 "../src/rx231.c"ccrx -lang=c99 -output=obj="src/rx231.obj" -include="C:\Renesas\CS_~1\CC\CC-RX\V203~1.00/include" -debug -nomessage -isa=rxv2 -fpu -nologo -define=__RX=1 "../src/rx231.c"'Finished scanning and building: ../src/rx231.c'
(1-3) 既存の依存関係を使用してプロジェクトをビルド
Build\ project\ excluding\ the\ dependencies=falseRe-generate\ and\ use\ dependencies\ during\ project\ build=falseUse\ existing\ dependencies\ during\ project\ build=trueeclipse.preferences.version=1
もし.settings\Dependency_Scan_Preferences.prefsファイルが存在していなければ、以下の内容で自動的に生成され(これはデフォルトの設定に相当します)、その設定に従ったコマンドでコンパイルされました。(1-4) Dependency_Scan_Preferences.prefsファイルが.settingsフォルダに存在しなかった場合
(2) e2 studio v6.1.0の場合以下の設定でプロジェクトを生成させました。生成されたファイルは以下の通りです。.settings\com.renesas.cdt.managedbuild.renesas.ccrx.prefs
com.renesas.cdt.managedbuild.renesas.ccrx.common.option.checkRtos=unusedRtos com.renesas.cdt.managedbuild.renesas.ccrx.rtosConfig.option.cfgFilePath=../generate/${ArtifactName}.cfg com.renesas.cdt.managedbuild.renesas.ccrx.rtosConfig.option.rtosName=None com.renesas.cdt.managedbuild.renesas.ccrx.rtosConfig.option.rtosPath= com.renesas.cdt.managedbuild.renesas.ccrx.rtosConfig.option.rtosVersion= eclipse.preferences.version=1
DependecyMode=ScanBuildDep eclipse.preferences.version=1
# #Fri Dec 22 20:26:40 JST 2017 activeConfiguration=com.renesas.cdt.managedbuild.renesas.ccrx.hardwaredebug.configuration.556832377
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ccrxProjectGenerationModel> <fEndian>LITTLE</fEndian> <optionsDefault/> </ccrxProjectGenerationModel>
<SerializableData> <SerializableData name="17c20985-edce-4aa7-9dc4-4f3bfd8d7ccf"> 途中省略(コード生成機能の各設定対象の個別設定データ) <SerializableData name="3bec8c90-e2aa-4e26-8743-33a781338df7"> <DataElement key="display" value="Device_PlatformCategory_RX231_512KB_R5F52318AxFP_Display"> </DataElement> <DataElement key="romstartaddress" value="FFF80000"> </DataElement> <DataElement key="name" value="R5F52318AxFP"> </DataElement> <DataElement key="mcutypedisplay" value="Device_PlatformCategory_RX"> </DataElement> <DataElement key="chipid" value="R5F52318AxFP"> </DataElement> <DataElement key="devicename" value="RX231"> </DataElement> <DataElement key="pin" value="100"> </DataElement> <DataElement key="devicenamedisplay" value="Device_PlatformCategory_RX231"> </DataElement> <DataElement key="romendaddress" value="FFFFFFFF"> </DataElement> <DataElement key="ramendaddress" value="0000FFFF"> </DataElement> <DataElement key="descriptor" value="Device_PlatformCategory_RX231_512KB_R5F52318AxFP_Description"> </DataElement> <DataElement key="mcutype" value="RX"> </DataElement> <DataElement key="id" value="R5F52318AxFP"> </DataElement> <DataElement key="ramstartaddress" value="00000000"> </DataElement> <DataElement key="rom" value="512KB"> </DataElement> <SerializableData name="category"> <DataElement key="display" value="Device_PlatformCategory_RX231_512KB"> </DataElement> <DataElement key="id" value="PlatformCategory_RX231_512KB"> </DataElement> <DataElement key="name" value="RX231_512KB"> </DataElement> <SerializableData name="category"> <DataElement key="display" value="Device_PlatformCategory_RX"> </DataElement> <DataElement key="id" value="PlatformCategory_RX"> </DataElement> <DataElement key="name" value="RX"> </DataElement> </SerializableData> </SerializableData> </SerializableData> <SerializableData name="fd9225c4-f97d-4baa-a04b-c69949a0f486"> <DataElement key="class" value="RenesasElectronics.MicomTool.CodeGenerator.Projects.ProjectRX.ProjectRXCreator"> </DataElement> <DataElement key="fileext" value=".cgp"> </DataElement> <DataElement key="id" value="Project_RX"> </DataElement> <DataElement key="icon" value="Icons_Project_RX"> </DataElement> <DataElement key="display" value="Project_RX_Display"> </DataElement> <DataElement key="guid" value="{86E668EF-B34B-4733-82CB-72E453160D92}"> </DataElement> <DataElement key="descriptor" value="Project_RX_Description"> </DataElement> <DataElement key="name" value="ProjectRX"> </DataElement> </SerializableData> <SerializableData name="9c804212-9f3e-4926-8eef-132c7518dc34"> <DataElement key="class" value="RenesasElectronics.MicomTool.CodeGenerator.Compilers.CompilerCCRX.CompilerCreatorCCRX"> </DataElement> <DataElement key="id" value="Compiler_CCRX"> </DataElement> <DataElement key="icon" value="Icons_Compiler_CCRX"> </DataElement> <DataElement key="display" value="Compiler_CCRX_Display"> </DataElement> <DataElement key="guid" value="{F31F4D9E-990A-4f28-82D9-AA346DEDBDA7}"> </DataElement> <DataElement key="descriptor" value="Compiler_CCRX_Description"> </DataElement> <DataElement key="name" value="CCRX"> </DataElement> </SerializableData> </SerializableData>
# #Fri Dec 22 20:28:22 JST 2017 CGExist=true
'Scanning and building file: ../src/rx231.c''Invoking: Scanner and Compiler'ccrx -MM -MP -output=dep="src/rx231.d" -MT="src/rx231.obj" -MT="src/rx231.d" -isa=rxv2 -fpu -include="C:\Renesas\CS+\CC\CC-RX\V2.03.00\include" -lang=c99 -nomessage -debug -nologo "../src/rx231.c"ccrx -isa=rxv2 -fpu -include="C:\Renesas\CS+\CC\CC-RX\V2.03.00\include" -lang=c99 -nomessage -output=obj -obj_path="src" -debug -nologo "../src/rx231.c"'Finished Scanning and building: ../src/rx231.c'
(2-2) Dependency_Scan_Preferences.prefsファイルが.settingsフォルダに存在しなかった場合
'Building file: ../src/rx231.c''Invoking: Compiler'ccrx -isa=rxv2 -fpu -include="C:\Renesas\CS+\CC\CC-RX\V2.03.00\include" -lang=c99 -nomessage -output=obj -obj_path="src" -debug -nologo "../src/rx231.c"'Finished Building: ../src/rx231.c'
[関連リンク]・CS+で同様な現象が発生した件CubeSuite+ で変更したファイル、影響のあるファイルのみをコンパイルしたいjapan.renesasrulz.com/cafe_rene/f/forum21/4402/cubesuite(参) CS+ FAQsupport.renesas.com/hc/ja/sections/201929768-統合開発環境-CS-・e2 studio v6でヘッダファイルを変更してもコンパイルされないことがある件e2studioでのRXコンパイルについてjapan.renesasrulz.com/cafe_rene/f/forum5/4551/e2studio-rx(参) e2 studio FAQsupport.renesas.com/hc/ja/sections/201929778-統合開発環境-e-studio-
こんにちは。NoMaYです。MinGW(Windows上のx86向けのGCCの処理系の1つ)とEclipse IDE for C/C++ Developers Neon 3(e2 studio v6.1.0のベースとなったもの)との組み合わせだとどうなるか調べてみたところ、ソースコードを全く変更していないのに全ビルドが行われてしまうトラブルは発生しませんでした。プロジェクトを作成した時の設定作成したプロジェクトissue_20180120.zipプロジェクト生成直後.cprojectファイルの内容
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> 略 <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> <storageModule moduleId="refreshScope"/></cproject>
[ポリシーを更新]の表示case1) 一度も[ポリシーを更新]を開いてOKを押したことが無いプロジェクト名を変更した後の.cprojectファイルの内容 : 内容は変わらない
プロジェクト名を変更した後の[ポリシーを更新]の表示 : 表示は変わるcase2) 一度でも[ポリシーを更新]を開いてOKボタン押したことが有るプロジェクト名を変更する前の.cprojectファイルの内容 : 内容は変わっている
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> 略 <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> <storageModule moduleId="refreshScope" versionNumber="2"> <configuration configurationName="Debug"> <resource resourceType="PROJECT" workspacePath="/mingw"/> </configuration> <configuration configurationName="Release"> <resource resourceType="PROJECT" workspacePath="/mingw"/> </configuration> </storageModule></cproject>
プロジェクト名を変更する前の[ポリシーを更新]の表示 : 表示は変わらないそしてプロジェクト名を変更したプロジェクト名を変更した後の.cprojectファイルの内容 : 内容は変わらない
プロジェクト名を変更した後の[ポリシーを更新]の表示 : 表示も変わらないe2 studioとは異なり現象は発生しない(ソースコードを全く変更していなければコンパイルもリンクも実行されることは無い)
NoMaYさんほやです。いつもながらレポートありがとうございます。
自然にタグが吐かれているみたいなのでCDTの問題じゃないかな~と思ったのですが、ハズレでしたか。
今週ちょうど e2 studio V6.2.0 がリリースされましたが、そのV6.2.0のopen issuesには"IDE-18639"にリストアップされています。https://www2.renesas.eu/_custom/software/ree_eclipse/e2studio6/docs/releasenotes/6.2.0/openissues.htm同じ問題であればそのうち直るはず…