0

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

元:

SECTIONS {
.text {}
.data {}
.bss {}
.sec_var {}

}

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

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

You can use :NONE to tell the linker to not put the section in any segment at all. 

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

4

1 に答える 1

0

このようなもの、

MEMORY
{
    bob : ORIGIN = 0x8000, LENGTH = 0x1000
    ted : ORIGIN = 0xA000, LENGTH = 0x1000
}

SECTIONS
{
   .text : { *(.text*) } > bob
   .rodata : { *(.rodata*) } > bob
   .bss : { *(.bss*) } > ted
}

.rodata を .text に実際に入れたいという意味ではないと思いますが、おそらく .text と .rodata を一緒にメモリ空間の同じチャンクに入れたいと思っています...

于 2013-10-18T00:22:56.160 に答える