1973200_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

1973200_ja-JP

1973200_ja-JP

未解決の包含

こんにちは、皆さん


MCUXpresso 24.9を使用しています。

私のプロジェクトでは、何らかの理由でコンパイラのコマンドラインを変更する必要がありました。変更は正常に動作しており、プロジェクトは問題なく構築されています。

しかし、副作用があります。インデクサーは lib include ファイルを解決できません。

biafra_0-1728895441980.png


この問題をデバッグするために、デフォルトのオプション ([新しいプロジェクト] -> [新しい C/C++ プロジェクトの作成]) を使用してテスト プログラムを作成し、プロジェクトをコンパイルするためのコマンド ライン ([プロジェクト プロパティ] -> [C/C++ ビルド] -> [設定] -> [MCU C コンパイラ]) をデフォルト値 (" arm-none-eabi-gcc") から "../compile.cmd" に変更しました。

biafra_1-1728895775700.png


compile.cmd ファイルはプロジェクト ディレクトリにあり、次の 1 行が含まれています。

arm-none-eabi-gcc %*

  

プログラムをコンパイルすると、プロセスはエラーなしで終了しますが、すべての c ライブラリ ファイルが未解決の包含として強調表示されるSO、問題はインデクサーにのみ存在します。


デフォルト設定の場合、ハイライトは表示されず、\.metadata\.logに記録されます。ファイルには次のメッセージがあります:

!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%)

どうすればこの問題を解決できるでしょうか?


どうもありがとう

ビアフラ


Re: Unresolved inclusion

こんにちは@Alice_Yang


私が報告した問題に関して何かニュースはありますか?

開発チームから検証されましたか?


その間にMCUXpresso 25.6にスイッチしましたが、何も変わりません。

biafra_0-1757063945602.png

biafra_1-1757064191009.png

問題ビューでエラーが報告されているにもかかわらず、プロジェクトは正常にコンパイルされます。


どうもありがとう

ビアフラ


Re: Unresolved inclusion

こんにちは@Alice_Yang


これで、プロジェクトの場所に応じて絶対パスを設定できるようになりました。この画像のように、ProjDirPath パス変数を使用する必要があります。

biafra_4-1735899636813.png


しかし、実際のプロジェクトは非常に複雑なプロジェクトであり、コマンドラインが8191文字の制限を超えているSO、Windowsの.cmdを使用することはできません。バッチファイル。

PCにGitがインストールされているので、.shシェルファイルを使用CANます。

biafra_2-1735899545460.png


ファイル compile.sh はプロジェクト ディレクトリ内に compile.cmd として存在し、次の行が含まれています。

#!/bin/sh
arm-none-eabi-gcc $@

compile.shファイルではプロジェクトはエラーなくビルドされますが、.shファイルを使用するとファイルでも同じ問題が発生します。インデクサーは lib インクルード ファイルを解決できません。


どうもありがとう

ビアフラ


Re: Unresolved inclusion

こんにちは@biafra

はい、受け取りました。IDEs 開発チームに確認する必要があります。できるだけ早く返信させていただきます。ご辛抱いただきありがとうございます。


BR

アリス

Re: Unresolved inclusion

こんにちは@Alice_Yang


ファイルを受け取りましたか?


どうもありがとう

ビアフラ


Re: Unresolved inclusion

こんにちは@Alice_Yang


間違いをお詫びします。ファイルを添付します。


どうもありがとう

ビアフラ


Re: Unresolved inclusion

こんにちは@biafra

申し訳ありませんが、ファイルを受け取っていません。もう一度送っていただけますか?


BR

アリス


BR

アリス

Re: Unresolved inclusion

こんにちは@Alice_Yang


一歩先を行きました。

compile.cmd ファイルの絶対パス (C:/MyProject/compile.cmd) を使用してプロジェクトをコンパイルするようにコマンド ラインを設定すると、未解決の包含装飾が消えます。

SO、PROJECT_LOC パス変数を使用しようとしましたが、展開されていないようで、ビルド エラーも発生しました。


インデクサーに compile.cmd ファイルへの相対パスを与える方法はありますか? あるいは、プロジェクトの場所に応じて絶対パスを与えることはできますか?

プロジェクト開発者のドライブ パスが異なるため、プロジェクトの場所を変更できる必要があります。


どうもありがとう

ビアフラ


Re: Unresolved inclusion

こんにちは@Alice_Yang


ご回答ありがとうございます。


プロジェクトを添付します。他に何か必要な場合はお知らせください。


どうもありがとう

ビアフラ


Re: Unresolved inclusion

こんにちは@biafra

compile.cmd を含むプロジェクト全体を送信してください。私は自分の側でテストと確認を手伝います。ありがとう。


BR

アリス

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎11-21-2025 11:55 PM
更新者: