Memory 如何在GCC LD脚本的特定输出部分中放置libc.a对象?
我试图将libc函数,如Memory 如何在GCC LD脚本的特定输出部分中放置libc.a对象?,memory,static-libraries,ld,libc,map-files,Memory,Static Libraries,Ld,Libc,Map Files,我试图将libc函数,如memcpy,memset等放在内存的特定部分。 我试着这样做smth: .section1 { /path/to/libc.a otherobj.o } .section2 { *(.text) } .section3 { *(.data .bss) } 使用gcc的ld工具和这个脚本以及-map选项,我检查了生成的映射文件,看到memcpy和其他符号仍然出现在第2节和第3节中 解决方法: 最后,我将lib文件提取到它的对象文件集合中
memcpy
,memset
等放在内存的特定部分。
我试着这样做smth:
.section1
{
/path/to/libc.a
otherobj.o
}
.section2
{
*(.text)
}
.section3
{
*(.data .bss)
}
使用gcc的ld工具和这个脚本以及-map选项,我检查了生成的映射文件,看到memcpy
和其他符号仍然出现在第2节和第3节中
解决方法:
最后,我将lib文件提取到它的对象文件集合中,并将它们分别放在我喜欢的地方。为什么?你到底想干什么?这听起来很像,我的问题是试图把libc代码放在一个更快的内存中。我使用静态链接,必须只将libc代码放在该部分,而不放其他内容。