gcc-arm-linux-gnueabi
を使用して組み込みアーム プロセッサ用にコンパイル-nostdlib
し、c ライブラリとスタートアップ ファイルへの依存関係を削除しようとしています。チップには elf ファイルを解釈する方法がないため、 を使用しobjcopy -O binary
て elf ヘッダーをチップから削除できます。ただし、ビルド ID をそのままにしておくと、バイナリの出力の先頭にビルド ID が含まれるため、実行に失敗します。を使用してリンカー スクリプトのビルド ID を削除できますが、/DISCARD/ : { *(.note.gnu.build-id) *(.ARM.attributes) }
リンカーは.note.gnu.build-id section discarded, --build-id ignored.
. これは正常に機能し、コードはチップ上で正常に実行されますが、ビルド ID を渡してドロップする必要はありません。gcc
コマンドをリンカーに渡さずに渡すように指示する方法はあります--build-id
か?
質問する
17767 次
2 に答える
26
これらのオプションはあなたが望むことをすると思います:
-Wl,--build-id=none
style に none を渡すと、コマンド ラインの前にある --build-id オプションからの設定が無効になります。
— ld マニュアル
于 2013-03-09T22:06:05.407 に答える