只是想知道这些结构之间有什么区别(文字,数据, rodata , bss etc)在链接器脚本中:
.data :
{
*(.data)
}
.data :
{
*(.data*)
}
.data :
{
*(.data.*)
}
在所有情况下,我们都会收集所有目标文件中的数据部分,但是魔鬼就是详细信息。
快速测试显示 map 文件中的地址不同,反过来又会影响可执行文件的大小。
我试图在 ld documentation中找到相关信息,但一无所获(或者只是错过了它)。
我想它应该是非常简单的东西(所谓的明显的)。
任何想法都将受到高度赞赏。
答案 0 :(得分:1)
在您可以使用特定文件或部分名称的任何地方,您也可以使用通配符模式。
它的工作方式类似于常规模式
*(.data)
- .data部分,示例: .data
*(.data*)
- .data * section,示例: .dataTEST
*(.data.*)
- .data。* section,示例: .data.TEST