gpt4 book ai didi

android - 链接器剥离未使用的类

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:00:41 24 4
gpt4 key购买 nike

我在 IOS 和 Android 下用 C++ 做一个跨平台项目,我遇到了以下情况:

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

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

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

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

这个问题不会成为我项目的障碍,但如果能在这里找到一个可接受的解决方案真的很棒。

最佳答案

It is implementation-defined whether the dynamic initialization of a non-local variable with static storage duration is done before the first statement of main. If the initialization is deferred to some point in time after the first statement of main, it shall occur before the first odr-use (3.2) of any function or variable defined in the same translation unit as the variable to be initialized.

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

关于android - 链接器剥离未使用的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7865262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com