Visual Studio 2019 头文件更改时未构建所有 cpp 文件

Visual Studio 2019 not building all cpp files when a header file changes

我一直在努力弄清楚为什么 visual studio 没有重新编译我的库项目中受头文件更改影响的所有编译单元。

假设我有以下头文件TestA.h:

class TestA
{
    public:
    int GetNumber() { return 0 };

    std::string GetString(); // implemented in TestA.cpp

}

假设我有 3 个 .cpp 文件 TestA.cpp TestB.cpp TestC.cpp

TestA.cpp 仅包含 TestA

的函数实现

然而 TestB.cppTestC.cpp 都遵循这样的东西:

#include "TestA.h"

....

TestA* aObject = new TestA();

int aNumber = aObject->GetNumber();

...

这就是现在的问题所在,如果我将TestA.h中的函数GetNumber更改为GetNumber1 Visual studio并且msbuild命令行只会构建TestA.cpp 编译成功。然后它将使用现在过时的 .obj 文件生成 .lib。但是,如果我重建,那么我会得到我预期的错误。我已尝试 enabling/disabling 增量链接、最小重建、托管增量构建。

我可以通过从中间目录中删除 .obj 和 .tlog 文件来实现所需的行为。

感谢任何帮助

谢谢 苏梅斯

因此,在用尽所有想法后,我决定尝试重新创建项目。那修好了!不确定到底发生了什么,但删除所有 vcxproj 文件并从头开始重新创建 vcxproj 解决了我的问题。不确定到底发生了什么变化,但这似乎解决了问题