一个通过强制使用符号来避免链接器忽略符号的方法

一个通过强制使用符号来避免链接器忽略符号的方法

虽然如果链接器在链接库时将符号忽略了一般是由于设置了 --as-needed 选项,或者编译时的优化太激进了,所以一般还是要去分析编译和链接过程来解决。

但如果确实不好解决,可以通过强制使用这些被忽略的符号的方式来让链接器不要忽略:

// 对所有被忽略的符号
extern "C" void __asan_unregister_globals();
extern "C" void __asan_register_globals();
__attribute__((used)) void *force_missing_symbols[] = {
  (void *)__asan_unregister_globals,
  (void *)__asan_register_globals
};
posted @ 2025-11-14 14:44  3的4次方  阅读(3)  评论(0)    收藏  举报