揪出gcc默认使用的ld链接脚本
2010-03-27 18:01
288 查看
作者:帅得不敢出门 程序群 3503799
首先声明不是讲lds语法的
在 <<程序员的自我修养-链接装载与库>>一书中曾提到ld默认使用的链接脚本
说默认在/usr/lib/ldscripts/下
结果我找了半天没找到 我的系统是fedora 8
find / -name *lds* 找不到 找script也找不到 晕了
后来查了下发现可以用ld -verbose查看默认的lds
输出如下:
GNU ld version 2.19.51.0.14-34.fc12 20090722
Supported emulations:
elf_i386
i386linux
elf_x86_64
using internal linker script:
==================================================
/* Script for -z combreloc: combine and sort reloc sections */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(_start)
SEARCH_DIR("/usr/i686-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
SECTIONS
{
/* Read-only sections, merged into text segment: */
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS;
........
后面略
这就奇怪了,那么这个lds到底在哪呢?
我们用find /usr/* |xargs grep "Script for -z combreloc"看看
结果 Binary file /usr/bin/ld matches 可见已经集成到ld中了
readelf -P --string-dump=.rodata ld便可以找到
首先声明不是讲lds语法的
在 <<程序员的自我修养-链接装载与库>>一书中曾提到ld默认使用的链接脚本
说默认在/usr/lib/ldscripts/下
结果我找了半天没找到 我的系统是fedora 8
find / -name *lds* 找不到 找script也找不到 晕了
后来查了下发现可以用ld -verbose查看默认的lds
输出如下:
GNU ld version 2.19.51.0.14-34.fc12 20090722
Supported emulations:
elf_i386
i386linux
elf_x86_64
using internal linker script:
==================================================
/* Script for -z combreloc: combine and sort reloc sections */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(_start)
SEARCH_DIR("/usr/i686-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
SECTIONS
{
/* Read-only sections, merged into text segment: */
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS;
........
后面略
这就奇怪了,那么这个lds到底在哪呢?
我们用find /usr/* |xargs grep "Script for -z combreloc"看看
结果 Binary file /usr/bin/ld matches 可见已经集成到ld中了
readelf -P --string-dump=.rodata ld便可以找到
相关文章推荐
- 揪出gcc默认使用的ld链接脚本
- 对gcc搜索路径的研究/以及不修改/etc/ld.so.conf使用非默认路径下的库文件--LD_LIBRARY_PATH
- mingw qt(可以去掉mingwm10.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll的依赖,mingw默认都是动态链接gcc的库而TDM是静态链接gcc库,tdm版本更好用。用aspack压缩没有问题。qt本身不使用异常处理)good
- arm-none-linux-gnueabi-ld默认链接脚本
- C# 调用IE打开网页链接 or 直接使用默认浏览器打开网页链接
- ld链接脚本与booter
- arm-linux-ld命令 ld链接脚本(不错,推荐可以学习一些lds链接脚本文件)
- GCC使用技巧之默认搜索路径
- Keil5.15使用GCC编译器链接.a库文件
- GCC的使用(编译,链接,运行)
- GCC中同时使用动态和静态库链接的编译
- 不使用 java.awt.Desktop API,打开默认浏览器访问指定链接的方法
- 如何使用小脚本和表达式链接数据库输出emp表的数据
- GNU-ld链接脚本浅析 (转)
- arm-linux-gcc/ld/objcopy/objdump使用总结
- ARM-GCC-LD脚本
- 链接器ld和链接脚本lds
- ld 用法----gcc 过程最后一步----链接
- GNU-ld链接脚本浅析
- 在Solaris上使用LD_OPTIONS环境变量诊断编译链接问题