链接描述文件中 *(.data)、*(.data*) 和 *(.data.*) 之间的区别
Difference between *(.data), *(.data*) and *(.data.*) in linker script
只是想知道这些结构之间有什么区别(对于 text、data、rodata、bss 等)在链接描述文件中:
.data :
{
*(.data)
}
.data :
{
*(.data*)
}
.data :
{
*(.data.*)
}
在所有情况下,我们从所有目标文件中收集 数据 部分,但细节决定成败。
快速测试显示map文件中的地址不同,进而影响可执行文件的大小。
我试图在 ld documentation 中查找信息,但一无所获(或者只是遗漏了)。
我猜应该是很简单的东西(所谓obvious)。
任何想法将不胜感激。
在任何可能使用特定文件或部分名称的地方,您也可以使用通配符模式。
它像常规模式一样工作
*(.data)
- .data 部分,示例: .data
*(.data*)
- .data* 部分,示例: .dataTEST
*(.data.*)
- .data.* 部分,示例: .data.TEST
只是想知道这些结构之间有什么区别(对于 text、data、rodata、bss 等)在链接描述文件中:
.data :
{
*(.data)
}
.data :
{
*(.data*)
}
.data :
{
*(.data.*)
}
在所有情况下,我们从所有目标文件中收集 数据 部分,但细节决定成败。
快速测试显示map文件中的地址不同,进而影响可执行文件的大小。
我试图在 ld documentation 中查找信息,但一无所获(或者只是遗漏了)。
我猜应该是很简单的东西(所谓obvious)。
任何想法将不胜感激。
在任何可能使用特定文件或部分名称的地方,您也可以使用通配符模式。
它像常规模式一样工作
*(.data)
- .data 部分,示例:.data
*(.data*)
- .data* 部分,示例:.dataTEST
*(.data.*)
- .data.* 部分,示例:.data.TEST