相关疑难解决方法(0)

什么可以使C++ RTTI不受欢迎?

纵观LLVM文件,他们提到,他们使用"RTTI的自定义窗体",这是他们的原因isa<>,cast<>dyn_cast<>模板功能.

通常,阅读一个库重新实现一种语言的一些基本功能是一种可怕的代码味道,只是邀请运行.但是,这是我们所说的LLVM:这些人正在研究C++编译器 C++运行时.如果他们不知道他们在做什么,我会非常沮丧,因为我更喜欢Mac OS附带clanggcc版本.

尽管如此,由于缺乏经验,我还是想知道正常RTTI的缺陷是什么.我知道它只适用于有v-table的类型,但只提出两个问题:

  • 既然你只需要一个虚拟方法来获得vtable,为什么它们不只是将方法标记为virtual?虚拟析构函数似乎很擅长这一点.
  • 如果他们的解决方案不使用常规RTTI,任何想法如何实现?

c++ rtti llvm

67
推荐指数
3
解决办法
1万
查看次数

如何减小MinGW g ++编译器生成的可执行文件的大小?

我有一个简单的"Hello world"C++程序,在Win XP下由MinGW g ++编译器编译为500kB可执行文件.有人说这是由libstdc ++.dlliostream库和静态链接引起的.

使用-s链接器选项有点帮助(减小50%的大小),但我只满足于<10kB可执行文件.有没有办法如何使用MinGW编译器实现这一目标?便携性对我来说不是一个大问题.

是否可以使用动态链接将libstdc ++.dll与可执行文件一起复制?如果是这样,如何实现这一目标?


解决了:我使用的是MinGW 3.4.现在我更新到最新的MinGW 4.6,尺寸减少了90%到50kB,-s选项甚至减少到9kB,这已经足够了.无论如何 - 感谢大家的帮助.在这里你得到我的结果

使用iostream的C++ Hello World程序

MinGW | no options | -s option
------------------------------
3.4   | 500kB      | 286 kB
4.6   | 50kB       |   9 kB
Run Code Online (Sandbox Code Playgroud)

c++ optimization executable mingw

17
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×2

executable ×1

llvm ×1

mingw ×1

optimization ×1

rtti ×1