Cmake如何为我的exe设置自定义ImageBase

时间:2016-09-26 01:25:47

标签: gcc cmake clion

我想为我的程序设置基地址。我用gcc和cmake。我怎么能这样做?

1 个答案:

答案 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;