c/c++ debug版本库 和 release 版本库 互用问题
一 背景
在项目中提供了c++的动态库, 但同事在debug中使用时一直奔溃。 所以将问题总结一下。
二 注意点
1 c的 debug 动态库 和 release 动态库 在debug 或 release项目中都可以使用 备注: 不含stl库
2 含有stl的 debug 动态库 和 release 动态库 在项目中不能混用,debug项目用debug库, release 项目用release 库
三 原因
比如std::string 在debug 和 release 环境中的内存大小是不一致的。 如果混用,会出现踩内存奔溃现象。
四 错误表现


本文探讨了C/C++项目中动态库(特别是包含STL的库)在debug与release版本间的互用问题。指出在debug环境中使用release版本的STL库可能会导致内存错误甚至程序崩溃,并解释了原因在于不同构建环境下STL对象如std::string的内存布局差异。
445

被折叠的 条评论
为什么被折叠?



