【发布时间】:2011-10-23 09:03:54
【问题描述】:
我正在使用 C++ 进行跨平台项目,在 IOS 和 Android 下,我遇到以下情况 :
我正在编写一个库,用于直接从描述场景图的 xml 文件加载场景图。该库有一个基本的树节点类,它实现了所有功能以使类可以按其名称构造。然后实现额外的树节点,所有这些都派生自这个基节点类。这很好用,但有一个问题。链接器“认为”我的一些类不会被使用,并将它们从库中删除。我现在有一个讨厌的解决方法,有一个包含所有现有节点标头的文件,在这个文件中,每个节点的一个实例都被创建和更改,以指示编译器/链接器确实正在使用这个类。
有没有人知道一个好的设计模式可以用来自动生成所有类的所需实例?
我已经尝试创建宏,这些宏被放置在创建给定类的静态实例的类 cpp 文件中,但链接器仍然检测到这些静态实例永远不会被引用。
或者是否有一个链接器标志可以用来告诉链接器不要删除任何未使用的类?就像已经提到的那样:我正在开发 Android (ndk 6.0) 和 IOS (xcode 4.2)
这个问题不会成为我项目的障碍,但在这里找到一个可接受的解决方案真的很不错。
【问题讨论】:
标签: android c++ ios gcc linker