我正在研究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
任何人都告诉我,在上面的输出结果中“调用init”是什么意思?
答案 0 :(得分:1)
calling init
表示在该库中调用任何初始化函数(例如__attribute__((constructor))
,静态初始值设定项和其他设置函数)。