使用发布模式构建c++,库处于调试模式

c++ build with release mode with library in debug mode

本文关键字:模式 于调试 调试 c++ 构建 布模式      更新时间:2023-10-16

我想知道是否在发布模式下构建项目并在调试模式下将库构建链接到它,库是否会优化?

No。如果库在调试模式下编译,则代码未优化。如果您将此库链接到您的发布库,该库仍将保持未优化状态(链接器无法重新编译该库!)请记住,一旦编译了库,二进制文件就固定了,不会再更改。

如果您在Windows上,您的调试库也将与调试运行时相链接,而发布库将与发布运行时相链接,使其不太可能由于符号冲突而完全工作。

如果库在调试模式下构建,它将不会被优化!

库代码在编译时已经完成了,所以不,它不会有优化的代码。

调试/发布代码优化在编译时完成。因为库已经编译了,所以没有,它不会有"发布"优化。

作为旁注,发布优化通常取决于开发人员(他需要将他的详细和其他辅助函数放在#ifdef DEBUG预处理器开关下)。

所以库可能已经经过了相当的优化(取决于库的实现),它只是启用了调试符号。