您的位置:首页 > 其它

gcc设置段基址

2016-04-06 00:00 218 查看
摘要: gcc设置段基址

gcc设置段基址

@(编译相关)[gcc设置段基址]

[TOC]

设置代码段基址

向gcc/g++中传入这个命令行选项:
-Wl,-Ttext-segment=<地址>
,-Wl表示这个命令行选项是传给链接器(即,ld)的。

命令行选项说明

查找ld的命令行选项手册(https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_3.html#SEC3)可找到下面的说明:

-Tbss org
-Tdata org
-Ttext org
Use org as the starting address for--respectively--the bss, data, or the text segment of the output file. org must be a single hexadecimal integer; for compatibility with other linkers, you may omit the leading `0x' usually associated with hexadecimal values.

上面英文的意思是:使用org作为输出文件的bss,data或text段的起始地址。org必须是一个十六进制整数;为了与其他链接器兼容,不要在十六进制数的前面添加'0x'。

起始地址可以理解为基址

我没有找到"-Ttext-segment"这个命令行选项,我认为"-Ttext-segment"与"-Ttext"表示同一个意思。

例子

使用下面的命令,gcc编译出来的ELF文件的text段基址为0x60000000:

gcc -Wl,-Ttext-segment=0x60000000 ...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gcc设置段基址