c++ - LD_DEBUG 输出中的 "calling init:"是什么?

标签 c++ ld

我正在研究 C++, 我使用 LD_DEBUG 环境变量来获取库加载顺序如下:

export LD_DEBUG=libs

然后执行程序。以下是输出片段。

|       3652:   find library=libc.so.6 [0]; searching
|       3652:    search cache=/etc/ld.so.cache
|       3652:     trying file=/lib/i386-linux-gnu/i686/cmov/libc.so.6
|       3652:   
|       3652:   
|       3652:   calling init: /lib/i386-linux-gnu/i686/cmov/libc.so.6
|       3652:   calling init: /lib/i386-linux-gnu/mySo.so.1

谁能告诉我,上面输出语句中的“calling init”是什么意思?

最佳答案

调用 init 意味着正在该库中调用任何初始化函数(例如 __attribute__((constructor))、静态初始化器和其他设置函数)。

关于c++ - LD_DEBUG 输出中的 "calling init:"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15110974/

相关文章:

c - GCC 编译 (ld) 问题的最后一步

c++ - 通过重载进行部分模板特化

c++ - 如何动态交换 QWidgets

c++ - 如何准备 ActiveX 控件以通过 Web 交付

c++ - 对于(自动 e : xxx) conflict with constructor

c - 如何在 GNU LD 中实现自定义输出部分?

linux - 使用 Rust 和 Amethyst 在 Linux 上缺少库

c++ - 使用 CMake、DSO-Link-Change 链接失败

c++ - 不同命名空间中的相同函数名称

c - ARM-C-arm-none-eabi-ld : not finding vsprintf, strcpy