問題タブ [linker-scripts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gcc - ARM STR7xx のローダー スクリプト
Eclipse + CDT + yagarto (gnu ツールチェーン) + OpenOCD を使用して ARM をプログラムしようとしています。いくつかのサンプル プロジェクト (yagarto サイトなど) で、多くのリンク情報が (セクション定義と共に) 指定されているリンカー スクリプト (*.ld) を見つけました。実際、私は以前にこのファイルに直面したことがなく (IAR はそれらを必要としません)、一見しただけでは理解しにくいと思います。私の質問は、すべてのプロジェクトでターゲット プロセッサ (STR710FZ2T6) 用のスクリプト ファイルを 1 つ使用できるか、またはこのスクリプトの作成に慣れてプロジェクトごとに作成する必要があるかということです。特定のターゲット プロセッサのすべてのプロジェクトで 1 つのファイルを使用できる場合は、そのようなユニバーサル ファイルをどこで見つけることができるかアドバイスをください。
linker - 共有ライブラリをリンクするときにシンボルの可視性を制限する
一部のプラットフォームでは、共有ライブラリの外部シンボルのリストをリンカーに提供する必要があります。ただし、ほとんどの unixish システムでは必要ありません。すべての非静的シンボルがデフォルトで使用可能になります。
私の理解では、GNU ツールチェーンはオプションで可視性を明示的に宣言されたシンボルだけに制限できるということです。GNU ldを使用してそれをどのように達成できますか?
arrays - リンカー ファイルの .bss セクションでの静的配列の整列
私は機能を持っています:
およびリンカー ファイル:
4 バイト境界に揃えるために静的配列 (.bss データ) が必要ですが、配列はそうするのを拒否しているようです。構造体とプリミティブ型は問題なく配置されていますが (塗りつぶしの行を参照)、配列はすべて終わっています。これが私のマップファイルです:
配列を整列する方法を知っている人はいますか?
gcc - Mac OS X でリンカー スクリプトを使用する
ld
Mac OS X でリンカー スクリプトを使用する方法はありますか?
Linuxの GNUld
プログラムはオプションを受け入れ-T <scriptname>
ますが、Mac OS では -T は未知のコマンド オプションです。問題が解決するのであれば、GCC の別のインストールを使用しても問題ありません。
linker - 不明なリンクエラー
私は自分のOSを開発していますが、このためにリンクに触れる必要があります。次に、このリンクスクリプトを実行してビルドしました。
しかし、物事をリンクしようとすると、いくつかのエラーが発生しました
$ ld -Tlinker.ld -o kernel.bin loader.o kernel.o
ld:linker.ld:5:構文エラー
$
私に何ができる?
gcc - powerpc-eabi-objcopy は 1GByte のファイルを作成します
私の elf ファイルは、すべてのデバッグ シンボルを含む約 1MByte です。「powerpc-eabi-objcopy -O binary out.elf out.bin」でバイナリ ファイルを作成しようとすると、out.bin が 1GByte と巨大です。
ビルドスクリプトは次のようになります
問題についてのアイデアはありますか?
ありがとう、
フリードリヒ
gcc - gcc/ld-glibc.2.6の__isoc99_sscanf@@GLIBC_2.7シンボルを使用して新しいlibc.soを作成します
アプリケーションを実行しようとするとエラーが発生します。
しかし、glibc2.7から必要な唯一のシンボルは
このシンボルを__sscanf()のエイリアスとして使用して、小さな単一の関数「ライブラリ」を作成したいと思います。
gcc / ldでこれを行うにはどうすればよいですか?
「@@」記号が原因で、私のバリアントは受け入れられません
2番目に私の変種は
ただし、リンカからの「シンボル__isoc99_sscanf@@GLIBC_2.7のバージョンノードが見つかりません」エラーで終了します。
c - リンクの問題: i386:入力ファイルの x86-64 アーキテクチャ *.o は i386 出力と互換性がありません
以前は gcc 3.5.* と binutils 2.18 (出力 x86_64-elf にコンパイル) で動作していた osdev を cygwin で動作する Linux に移動したときに、リンクで問題が発生しました。
情報は次のとおりです:
gcc -v
ld-v
ld -helpの一部
コード:
main.c
br>
start.asm
br>
link.ld
br>
build.sh
br>
端末出力
br>
OUTPUT_FORMAT(elf64-x86-64); があるときに「i386 出力と互換性がありません」と表示される理由がわかりません。ターゲット出力を指定するリンカースクリプトで..
linux - リンカー スクリプトで -dynamic-linker を使用しますか?
Intel 32 ビット プロセッサで Linux 2.6.31-14 を使用しています。
C ファイル:
リンカー スクリプト:
出力:
なにが問題ですか?リンカー スクリプトでダイナミック C ライブラリを使用するにはどうすればよいですか?
linker - (vxworks) このリンカ スクリプトを使用して生成されたバイナリで、最初に検出されたアドレスがテキスト セグメントの開始アドレスから始まらないのはなぜですか?
vxWorks で作業しているプロジェクトがあり、テスト用に vxsim バイナリを構築しています。リンク プロセスには 3 つの段階があります。メイクファイルの関連部分は、おおよそ次のようになります。
さらに情報が必要な場合 (フラグなど)、お知らせください。私は現在、そのコンピューターの前にいませんが、約 1 時間後に、その時点までに回答が得られない場合は、この質問を詳細に更新します。
以下は、リンカー スクリプトのラフ スケッチです。vxWorks 6.x にアクセスできる場合は、デフォルトの「link.RAM」スクリプトです。
wrs_kernel_text_start
何かが含まれる前、および ALIGN ステートメントの前に、テキスト セグメントの先頭に発生するという事実に注意してください。
私が行った他の vxWorks プロジェクトではwrs_kernel_text_start = 0x60010000
、ただし、この特定のプロジェクトでは、 とほぼ同等の別のアドレス0x6025XXXX
です。あなたは間違って読んでいるわけではありません。アドレスは、私が期待するアドレスよりも 1 桁大きくなっています。つまり、そうではありません0x60025XXX
。 私が期待するように_sysInit
すぐに始まります。0x60010000