私はmakefileプロジェクトを研究しています。私は gnu gcc を使用しており、リンカとして、次の引数で gcc を使用しています。
linkerCmdLine=$(exe) -Wl,--start-group -nostdlib -Map=test_mapfile.map -l:libc.a -l:libgcc.a -l:libm.a -Wl,--end-group -o $(出力)
リンク プロセス中、リンカーはこのフラグのすべてを使用しません。フラグ-Map=test_mapfile.map
は使用されません。
どうして??
プロジェクト設定ファイルがあり、このファイルにはリンカー設定も保存されています。
\u201ClinkerCmdLine\=$(exe) -Wl, --start-group -nostdlib -Map\=./99_output/PUZ_GPF.map --gc-sections -l\:libc.a -l\:libgcc.a -l \:libm.a -Wl,--end-group -o $(出力)\u201D
設定を正しく保存するにはどうすればよいですか?
編集:
マップ ファイルでは正常に動作しますが、実際にはリンカー ファイルに問題があります。次のフラグのみを使用します。
"linkerCmdLine=$(exe) -Wl, --script=C:/workspace/test_project/test_linker_file.ld -static -o $(output)"
コンソール ウィンドウに次のエラーが表示されます。
arm-none-eabi-gcc.exe: エラー: 認識できないコマンド ライン オプション '--script=C:/workspace/test_project/test_linker_file.ld'
マップ ファイルと .ld ファイルはリンカー フラグに属しているため、理由がわかりません。