自从我前一段时间问这个问题: Integrating C++ custom memory allocators across shared/static libraries并没有解决我对如何在所有后续库和可执行文件之间链接自定义内存分配器的疑问,也许我的英语知识使我无法接受,并且解释得并不好。
我正在构建一个游戏引擎只是为了增强我的C ++技能,所以我没有重新发明平台抽象层,而是使用了经过大量修改的BDE (Bloomberg Development Environment)的私有fork和自定义分配器:{{ 3}}和ltalloc(可被构建系统交换),而我的模块和可执行文件如下图所示:
bsl64 库包含自定义内存分配器集成代码,并覆盖了全局C ++分配器调用new
和delete
,并且目前不再使用任何STL。是唯一链接自定义内存分配器的库,我不确定这是否正确,还是所有后续dll也必须链接静态库?我还应该考虑哪些其他注意事项,以及如何决定将所有这些库转换为静态库?