在共享库中全局声明的非 POD 对象的语义是啥?
Posted
技术标签:
【中文标题】在共享库中全局声明的非 POD 对象的语义是啥?【英文标题】:What are the semantics of non-POD objects declared globally in shared libraries?在共享库中全局声明的非 POD 对象的语义是什么? 【发布时间】:2014-08-24 14:24:52 【问题描述】:如果在共享库中全局实例化具有重要构造函数和析构函数的 C++ 类,是否在加载库时调用其构造函数,同样,在卸载库时是否调用其析构函数?这是保证,还是经常发生?它永远不会发生吗?
【问题讨论】:
我相信共享库行为是特定于平台的,并且取决于所使用的 ABI。对于 ELF 定义了 ctor 和 dtor 列表,系统应该尊重它们。 相关解释:***.com/questions/19373061/…和***.com/questions/75701/… 【参考方案1】:是的,构造函数和析构函数总是会在加载或卸载库时调用。
【讨论】:
你能引用一个来源吗?我什至不记得我为什么要问这个问题,那是差不多一年前的事了。但我还是想知道。以上是关于在共享库中全局声明的非 POD 对象的语义是啥?的主要内容,如果未能解决你的问题,请参考以下文章