我想为我的程序设置基地址。我用gcc和cmake。我怎么能这样做?
答案 0 :(得分:1)
可执行文件的开头部分可以使用-Ttext-segment=<addr>
链接器选项进行自定义。
对于CMake,这将部分的开头设置为0x200000:
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Ttext-segment=200000")
(应在 project()
致电之后来。)
实际上,给定选项只是为段的开头指定值&#34; text-segment&#34;。
它是默认的链接描述文件,它将所有部分放在此地址之后。它使用
. = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;