here中,c宏中的.*是什么意思?

583 #define INITCALLS                                                       \
584         *(.initcallearly.init)                                          \
585         VMLINUX_SYMBOL(__early_initcall_end) = .;                       \
586         *(.initcall0.init)                                              \
587         *(.initcall0s.init)                                             \
588         *(.initcall1.init)                                              \
589         *(.initcall1s.init)                                             \
590         *(.initcall2.init)                                              \
591         *(.initcall2s.init)                                             \
592         *(.initcall3.init)                                              \
593         *(.initcall3s.init)                                             \
594         *(.initcall4.init)                                              \
595         *(.initcall4s.init)                                             \
596         *(.initcall5.init)                                              \
597         *(.initcall5s.init)                                             \
598         *(.initcallrootfs.init)                                         \
599         *(.initcall6.init)                                              \
600         *(.initcall6s.init)                                             \
601         *(.initcall7.init)                                              \
602         *(.initcall7s.init)
603

最佳答案

它是一个链接描述文件。该节的合并和放置是由链接器完成的。程序员可以通过链接程序脚本文件控制节的合并方式以及它们在内存中的放置位置。您引用的文件就是这样做的。

。(点)指向链接部分,使用通配符*代替单独指定包含相同命名链接部分的多个文件名。

引用:http://sources.redhat.com/binutils/docs-2.10/ld_3.html

10-07 22:25