gcc设置段基址
博客专区 > i不歪 的博客 > 博客详情
gcc设置段基址
i不歪 发表于2年前
gcc设置段基址
  • 发表于 2年前
  • 阅读 26
  • 收藏 0
  • 点赞 1
  • 评论 0
摘要: 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设置段基址
共有 人打赏支持
粉丝 5
博文 55
码字总数 50607
×
i不歪
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: