繁体   English   中英

当头文件更改时,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。 然而,如果我重建,那么我会得到我期望的错误。 我尝试启用/禁用增量链接、最小重建、托管增量构建。

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

任何帮助表示赞赏

谢谢苏梅

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM