問題タブ [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.

0 投票する
0 に答える
2036 参照

c - PUTS へのリンカ スクリプト未定義参照

リンカースクリプトを学習しようとしています ここに私のファイルがあります

caller.c

helloasm.c

link.lds

コンパイル.sh

私が使っているとき

出力HELLOを取得しています

しかし、shファイルが呼び出されると、エラーが発生します**

** 誰か puts 関数が定義されていない理由を説明できますか

0 投票する
1 に答える
575 参照

gcc - ARM GNU GCC リンカ

これは GNU リンカに関連しています。 .text 、 .data または .bss 以外のセクションがある場合、どのセグメントにもそのセクションを含めないようにリンカに指示するにはどうすればよいですか。

元:

実際、私の場合、sec_var にはいくつかのグローバル変数があり、それをデータ セグメントの一部にしたくありませんが、デフォルトではリンカにはこの孤立セクションの概念があるため、そのセクションを .data に配置しようとします。このため、最終的なバイナリ サイズは同じになります。

GCCリンカーを読みました:

誰かがそれを使用したり、sec_var が .data セクションの下に配置されないようにする他の方法を持っていますか?

0 投票する
3 に答える
8929 参照

gcc - GCC: .text セクションの先頭に「main」関数を配置するように GCC に指示する方法は?

ARM プログラミングの学習を始めたばかりで、やや厄介な問題に悩まされています。ソースをコンパイルするために使用しているツールチェーンは Sourcery CodeBench Lite 2013.05-23 です (ここで見つけることができます: https://sourcery.mentor.com/GNUToolchain/release2449 )

必要なのは、GCC、LD、または OBJCOPY に、「main」関数のコンパイル済みバイトコードを .text セクションの先頭に配置するように指示することです。

これを達成する方法はありますか?(おそらくリンカースクリプトを介して?)

ありがとうございました

0 投票する
1 に答える
73 参照

c - 特定のアドレスに存在する型を指定する

Bash を使用して、ac プログラム変数のアドレスを取得します。アドレスが整数、浮動小数点数、または倍精度変数に関連しているかどうかを知る方法は?

0 投票する
1 に答える
231 参照

linker-scripts - リンカ コマンド ファイルで定義されたシンボルから 18 ビット コード アドレスを取得する方法

Code Composer では、リンカー コマンド ファイルで新しいシンボルを簡単に定義できます。

メモリマップとセクションの割り当ての前。これは、TI のブートローダの例で行われます。

次に、Cコードでアドレスを(整数として)次のように参照できます

問題は、「小さい」メモリ モデルを使用すると、後者のシンボル (0x45C00) が 16 ビット ポインターにキャストしようとするため、リンカーに警告が表示されることです。

明示的なfarポインターを使用してみましたが、コード コンポーザーはキーワードを理解していませんfar。ダミーシンボルを関数ポインターにして、コンパイラーをだまして逆参照すると....ポインターがコード空間を指し、コード空間モデルが「大」であるのに対し、データ空間モデルは「小」です。 .

0 投票する
2 に答える
2215 参照

linux - カスタムリンカースクリプトで ld をコンパイルするには?

Linux カーネル 3.8 のカスタム バージョンをビルドしようとしています。リンカの動作を少し変えたいので、ldscripts を変更しました。具体的には、 binutils -> make -> change ldscripts -> make installを構成します。ただし、リンカーを使用して libc をコンパイルしようとすると、次のように表示されます。

問題は、ldscripts を変更し、各スクリプトを認識するために各スクリプトの先頭にタグを追加したことですが、コンパイラは気にしないようです。ただし、私のシステムには他のエルフスクリプトがないため、間違ったライブラリパスを検索するオプションは実際にはオプションではありません。

私がここに欠けているものはありますか?

sparc 用にクロスコンパイルしていることに注意してください