繁体   English   中英

链接器剥离未使用的类

[英]Linker stripping unused classes

我正在IOS和Android下使用C ++进行跨平台项目,并且遇到以下情况:

我正在编写一个用于直接从描述它们的xml文件中加载场景图的库。 该库具有一个基础树节点类,该类实现了所有功能,以使该类可以通过其名称构造。 然后,实现其他树节点,所有树节点均源自此基本节点类。 效果很好,但是有一个问题。 链接器“认为”我的某些类将不再使用,并将其从库中删除。 我现在有一个令人讨厌的解决方法,有一个包含所有现有节点标头的文件,并且在该文件中,正在创建和更改每个节点的一个实例,以指示编译器/链接器确实在使用该类。

有人知道一个好的设计模式可用于自动生成所有类的所需实例吗?

我试图创建放置在类cpp文件中的宏,该宏创建给定类的静态实例,但是链接器仍然检测到这些静态实例永远不会被引用。

还是有一个链接器标志可用于告诉链接器不要剥离任何未使用的类? 如前所述:我正在使用Android(ndk 6.0)和IOS(xcode 4.2)

这个问题不会成为我项目的重中之重,但是在这里找到一个可以接受的解决方案真的很好。

由实现定义,是否在main的第一条语句之前完成了具有静态存储持续时间的非局部变量的动态初始化。 如果将初始化推迟到main的第一条语句之后的某个时间点,则它应发生在与要初始化的变量在同一转换单元中定义的任何函数或变量的第一次odr使用(3.2)之前。

因此,没有一种标准的方法来保证这些对象的构造,而是将它们全部列出在一个特定的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM