gcc设置段基址
2016-04-06 00:00
218 查看
摘要: gcc设置段基址
[TOC]
上面英文的意思是:使用org作为输出文件的bss,data或text段的起始地址。org必须是一个十六进制整数;为了与其他链接器兼容,不要在十六进制数的前面添加'0x'。
起始地址可以理解为基址。
我没有找到"-Ttext-segment"这个命令行选项,我认为"-Ttext-segment"与"-Ttext"表示同一个意思。
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 ...
相关文章推荐
- Android上可执行ELF文件中的段不能有基址
- GDB远程调试Android上的可执行ELF文件
- Azkaban的Web Server源码探究系列6: alerters及插件机制分析
- MySQL5.6性能调优 my.cnf 配置详解 和 启动失败遇到的问题
- MYSQL迁移或者升级的故障解决大全
- JavaScript权威指南7-属性的特性(2)
- iPhone系统版本升级后无法真机调试
- day26-struts2---day01(struts2基础,xml校验,属性驱动,模型驱动,域)
- rebar3使用run_erl运行erlang项目
- 写给后端程序员的HTTP缓存原理介绍
- tcpdump -w 1.pcap 提示 Permission denied
- 2.前端笔记之css
- 画集
- 从零开始(2)
- 液体动画效果
- 3D显示Cell效果
- clang: error: unknown argument: 'websockets'解决方法
- Scala 的 yield 例子 (for 循环和 yield 的例子)
- linux awk和其它shell 编程变量
- linux read 用法