こんにちは、皆さん
MCUXpresso 24.9を使用しています。
私のプロジェクトでは、何らかの理由でコンパイラのコマンドラインを変更する必要がありました。変更は正常に動作しており、プロジェクトは問題なく構築されています。
しかし、副作用があります。インデクサーは lib include ファイルを解決できません。
この問題をデバッグするために、デフォルトのオプション ([新しいプロジェクト] -> [新しい C/C++ プロジェクトの作成]) を使用してテスト プログラムを作成し、プロジェクトをコンパイルするためのコマンド ライン ([プロジェクト プロパティ] -> [C/C++ ビルド] -> [設定] -> [MCU C コンパイラ]) をデフォルト値 (" arm-none-eabi-gcc") から "../compile.cmd" に変更しました。
compile.cmd ファイルはプロジェクト ディレクトリにあり、次の 1 行が含まれています。
arm-none-eabi-gcc %*
プログラムをコンパイルすると、プロセスはエラーなしで終了しますが、すべての c ライブラリ ファイルが未解決の包含として強調表示されるSO、問題はインデクサーにのみ存在します。
デフォルト設定の場合、ハイライトは表示されず、
!ENTRY org.eclipse.cdt.core 1 0 2024-10-14 10:30:17.365
!MESSAGE Indexed 'MIMXRT1064_Project' (20 sources, 43 headers) in 1,87 sec: 8.359 declarations; 17.870 references; 0 unresolved inclusions; 0 syntax errors; 0 unresolved names (0%)カスタム設定がある場合は、次のメッセージが表示されます。
!ENTRY org.eclipse.cdt.core 4 0 2024-10-14 10:32:13.001
!MESSAGE Error: Cannot run program "..\compile.cmd": Launching failed
!STACK 0
java.io.IOException: Cannot run program "..\compile.cmd": Launching failed
at org.eclipse.cdt.utils.spawner.Spawner.exec(Spawner.java:450)
at org.eclipse.cdt.utils.spawner.Spawner.(Spawner.java:147)
at org.eclipse.cdt.utils.spawner.Spawner.(Spawner.java:134)
at org.eclipse.cdt.utils.spawner.ProcessFactory$Builder.start(ProcessFactory.java:273)
at org.eclipse.cdt.utils.spawner.ProcessFactory.exec(ProcessFactory.java:366)
at org.eclipse.cdt.core.CommandLauncher.execute(CommandLauncher.java:189)
at org.eclipse.cdt.internal.core.BuildRunnerHelper.build(BuildRunnerHelper.java:274)
at org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuiltinSpecsDetector.runProgramForLanguage(AbstractBuiltinSpecsDetector.java:808)
at org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuiltinSpecsDetector.runForLanguage(AbstractBuiltinSpecsDetector.java:736)
at org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuiltinSpecsDetector.runForEachLanguage(AbstractBuiltinSpecsDetector.java:601)
at org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuiltinSpecsDetector$1.runInWorkspace(AbstractBuiltinSpecsDetector.java:527)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:43)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
!ENTRY org.eclipse.cdt.core 1 0 2024-10-14 10:32:14.602
!MESSAGE Indexed 'MIMXRT1064_Project' (20 sources, 30 headers) in 1,05 sec: 7.246 declarations; 12.921 references; 18 unresolved inclusions; 59 syntax errors; 3.440 unresolved names (15%) どうすればこの問題を解決できるでしょうか?
どうもありがとう
ビアフラ
こんにちは@Alice_Yang 、
私が報告した問題に関して何かニュースはありますか?
開発チームから検証されましたか?
その間にMCUXpresso 25.6にスイッチしましたが、何も変わりません。
問題ビューでエラーが報告されているにもかかわらず、プロジェクトは正常にコンパイルされます。
どうもありがとう
ビアフラ
こんにちは@Alice_Yang 、
これで、プロジェクトの場所に応じて絶対パスを設定できるようになりました。この画像のように、ProjDirPath パス変数を使用する必要があります。
しかし、実際のプロジェクトは非常に複雑なプロジェクトであり、コマンドラインが8191文字の制限を超えているSO、Windowsの.cmdを使用することはできません。バッチファイル。
PCにGitがインストールされているので、.shシェルファイルを使用CANます。
ファイル compile.sh はプロジェクト ディレクトリ内に compile.cmd として存在し、次の行が含まれています。
#!/bin/sh
arm-none-eabi-gcc $@compile.shファイルではプロジェクトはエラーなくビルドされますが、.shファイルを使用するとファイルでも同じ問題が発生します。インデクサーは lib インクルード ファイルを解決できません。
どうもありがとう
ビアフラ
こんにちは@biafra
はい、受け取りました。IDEs 開発チームに確認する必要があります。できるだけ早く返信させていただきます。ご辛抱いただきありがとうございます。
BR
アリス
こんにちは@Alice_Yang 、
ファイルを受け取りましたか?
どうもありがとう
ビアフラ
こんにちは@Alice_Yang 、
間違いをお詫びします。ファイルを添付します。
どうもありがとう
ビアフラ
こんにちは@biafra
申し訳ありませんが、ファイルを受け取っていません。もう一度送っていただけますか?
BR
アリス
BR
アリス
こんにちは@Alice_Yang 、
一歩先を行きました。
compile.cmd ファイルの絶対パス (C:/MyProject/compile.cmd) を使用してプロジェクトをコンパイルするようにコマンド ラインを設定すると、未解決の包含装飾が消えます。
SO、PROJECT_LOC パス変数を使用しようとしましたが、展開されていないようで、ビルド エラーも発生しました。
インデクサーに compile.cmd ファイルへの相対パスを与える方法はありますか? あるいは、プロジェクトの場所に応じて絶対パスを与えることはできますか?
プロジェクト開発者のドライブ パスが異なるため、プロジェクトの場所を変更できる必要があります。
どうもありがとう
ビアフラ
こんにちは@Alice_Yang 、
ご回答ありがとうございます。
プロジェクトを添付します。他に何か必要な場合はお知らせください。
どうもありがとう
ビアフラ
こんにちは@biafra
compile.cmd を含むプロジェクト全体を送信してください。私は自分の側でテストと確認を手伝います。ありがとう。
BR
アリス