链接器剥离未使用的类
Linker stripping unused classes
我正在做一个c++的跨平台项目,在IOS和Android下,我有以下情况:
我正在编写一个库,用于直接从描述它们的xml文件加载场景图形。这个库有一个基树节点类,它实现了所有的功能,使一个类可以通过它的名字来构造。然后实现其他树节点,所有这些节点都派生自这个基节点类。这种方法非常有效,但有一个问题。链接器"认为"我的一些类不会被使用,并将它们从库中剥离出来。我现在有一个讨厌的解决方案,有一个文件,其中包括所有现有的节点头,并在这个文件中的每个节点的一个实例正在创建和更改,以指示编译器/链接器,该类是真正被使用。
有谁知道一个好的设计模式,可以用来自动生成所需的所有类的实例吗?我已经尝试创建宏放在类的cpp文件中,该文件创建给定类的静态实例,但是链接器仍然检测到这些静态实例永远不会被引用。
或者有一个链接器标志,可以用来告诉链接器不要剥离任何未使用的类?就像已经提到的:我正在Android (ndk 6.0)和IOS (xcode 4.2)上工作
这个问题不会成为我项目的一个亮点,但如果能在这里找到一个可接受的解决方案就太好了。
非局部变量的动态初始化是否具有静态存储是由实现定义的Duration在main的第一个语句之前执行。如果初始化延迟到某个时间点在main语句的第一个语句之后,它应该出现在任何函数或变量的第一次使用(3.2)之前与要初始化的变量在同一个翻译单元中定义。
因此,没有标准的方法来保证这些对象的构造,而是将它们全部列在一个特定的位置
相关文章:
- 普通环路未使用gcc 4.8.5自动矢量化
- 在更改for循环的第三部分后,未使用for循环结果
- 使用typeid警告未使用的变量
- C++删除未使用的类属性会导致 std::logic_error
- 警告 C4552:">>":未使用表达式的结果
- (SFML)按下键时,播放器构造函数未使用正确的动画进行更新
- 为什么我会收到警告,指出函数已使用但未定义,以及已定义但未使用?
- 如果我想链接静态库并删除未使用的符号.txt我应该如何处理 Cmakelist
- 可视化C++载体:未使用的容量
- GCC 中 __attribute__((未使用)) 和 __attribute((未使用)) 之间的区别
- 循环访问还包含未使用元素的字符串数组
- Q维德格特关闭事件(..)未使用 QProcess::terminate() 调用
- Visual Studio "fatal error LNK1104: cannot open file"未使用或包含的库
- G++ 编译器是否在未使用返回值的情况下将 constexpr 函数视为常规函数?
- 链接器输入文件未使用,因为链接未完成,我无法获得.o
- 未使用的C++未优化的静态成员函数/变量
- 仅当一个参数中未使用 std::function 时,模板函数替换才有效
- 如何控制或优化或删除或释放 UNION 中未使用的内存
- 未使用的 asm() 在不受支持的体系结构上的行为
- 链接器剥离未使用的类