0

我在一个 C++ 项目中有两个项目。在调试模式下构建工作正常,但是在链接时在发布模式下失败。本质上,似乎每个项目都需要对方的 lib 文件(循环依赖)?

有没有理由为什么这只会在发布模式下成为问题?也许优化?

我在做什么:

项目 A 具有基本类型 ABase。项目 B 具有基本类型 DerivedFromABase(从 ABase 派生)。结果,它包括 ProjectA\ABase.h。所以项目 B 依赖于项目 A。

在项目 A 中,有一个文件 Process.cpp。该文件使用指向 ABase 的指针,它可以是 ABase 或 DerivedFromABase 类型(尽管都被转换为指向 ABase 的指针)。

如果我在项目 A 的 Process.cpp 中包含项目 B 的 DerivedFromABase.h,项目 A 现在似乎需要项目 B 的 lib 文件,但仅限于发布模式。即使从未明确使用 DerivedFromABase 类,也会发生这种情况。调试模式编译没有问题。

编辑:我不一定对让它工作的变通办法感兴趣。这只是测试新功能的一个快速技巧(这些项目是众多项目中的两个) - 我正在重构代码以正确实现它,因此项目 A 不需要了解 DerivedFromABase。我对它为什么在 Debug 而不是 Release 中工作很感兴趣。

4

0 回答 0