链接器剥离未使用的类 我正在C++和iOS和Android平台上进行跨平台项目,我有以下情况 :

链接器剥离未使用的类 我正在C++和iOS和Android平台上进行跨平台项目,我有以下情况 :,android,c++,ios,gcc,linker,Android,C++,Ios,Gcc,Linker,我正在编写一个库,用于直接从描述场景图的xml文件加载场景图。该库有一个基本的树节点类,它实现了所有的功能,使一个类可以通过它的名称进行构造。然后实现额外的树节点,所有这些节点都派生自这个基本节点类。这很好,但有一个问题。链接器“认为”我的一些类不会被使用,并将它们从库中删除。我现在有一个讨厌的解决方法,有一个包含所有现有节点头的文件,在这个文件中,每个节点的一个实例都被创建和修改,以指示编译器/链接器这个类确实被使用 有谁知道一个好的设计模式可以用来自动生成所有类所需的实例吗 我曾尝试创建宏,

我正在编写一个库,用于直接从描述场景图的xml文件加载场景图。该库有一个基本的树节点类,它实现了所有的功能,使一个类可以通过它的名称进行构造。然后实现额外的树节点,所有这些节点都派生自这个基本节点类。这很好,但有一个问题。链接器“认为”我的一些类不会被使用,并将它们从库中删除。我现在有一个讨厌的解决方法,有一个包含所有现有节点头的文件,在这个文件中,每个节点的一个实例都被创建和修改,以指示编译器/链接器这个类确实被使用

有谁知道一个好的设计模式可以用来自动生成所有类所需的实例吗

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

或者是否有一个链接器标志可以用来告诉链接器不要删除任何未使用的类?如前所述:我正在Android(ndk 6.0)和IOS(xcode 4.2)上工作

这个问题不会阻碍我的项目,但在这里找到一个可接受的解决方案真的很好

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

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