“什么是”呢;调用init:";在LD_调试输出中? 我在C++上工作, 我使用LD_DEBUG环境变量获得库加载顺序,如下所示: export LD_DEBUG=libs

“什么是”呢;调用init:";在LD_调试输出中? 我在C++上工作, 我使用LD_DEBUG环境变量获得库加载顺序,如下所示: export LD_DEBUG=libs,c++,ld,C++,Ld,然后执行程序。以下是输出的片段 | 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:

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

|       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”是什么意思吗?

调用init
意味着在该库中调用任何初始化函数(例如
\uu属性((构造函数))
、静态初始化器和其他设置函数)。

谢谢,但是初始化函数是如何被调用的,函数的库在哪里直到现在才被加载?@bsalanke:你没有看到所有的东西。在
尝试
调用
之间加载库。请尝试
LD_DEBUG=all
。这是否意味着仅“find library=”标记并不意味着已加载库?您能告诉我如何知道加载了哪些库以及加载顺序吗?请使用
LD\u DEBUG=all
。您没有看到所有调试输出。