为什么不能互换地使用lib的调试/发布版本

use*_*834 5 libstdc++

在C++中,大多数lib都是Debug/Release版本.问题1.调试版和发布版之间有什么大的区别(例如,使用一个版本与另一个版本有什么优势).

问题2. lib只是有一个函数的实现,如果你使用调试/发布版本,函数实现如何改变?

问题3.您是否可以在调试模式下构建应用程序并使用lib的发行版本?

谢谢.

mik*_*002 3

答案1

调试模式

  • 包含用于调试的符号。换句话说,您的调试器可以将程序的当前位置链接到源代码中的位置
  • 可能包含仅调试代码,例如#ifdef DEBUG块中的代码

发布模式

  • 更快,因为它删除了与调试相关的代码。
  • 由于缺少符号,调试受到限制。

答案2

  • 取决于库的实现方式

答案3

  • 仅当它们具有相同的ABI时。