查看linker文件的时候发现不理解 keep,查询网络后有了理解。keep相当于告诉编译器,这部分不要被垃圾回收。
There's a --gc-sections option that enables garbage collection of unused input sections. The default behavior (of not performing
this garbage collection) can be restored by specifying --no-gc-sections on the command line.
When link-time garbage collection is in use (--gc-sections), marking sections that should not be eliminated is often useful. This is
accomplished by surrounding an input section’s wildcard entry with KEEP(), as in KEEP(*(.init)) or KEEP(SORT_BY_NAME(*)
(.ctors)).