使用Visual 2019 / CMake / Ninja的文件之间的依赖关系问题

时间:2019-11-06 14:52:59

标签: c++ cmake visual-studio-2019 ninja

我在使用Visual 2019 / CMake / ninja创建的项目中遇到无法检测到的依赖关系的问题。为了说明这个问题,我创建了一个带有两个类ClassA和ClassB的小案例。

ClassA的.cpp文件为:

#include "ClassA.h"

#include "ClassB.h"

ClassA::ClassA()
{}


ClassA::~ClassA()
{}

void ClassA::callPrivateB()
{
    ClassB toto;
    toto.privateFct();
}

ClassB的.h文件是:

#pragma once

class ClassB
{
public:
    ClassB();

    ~ClassB();

    void privateFct();
};

main.cpp是:

#include <ClassA.h>

int main(int argc, char* argv[])
{
    ClassA toto;

    toto.callPrivateB();

    return 0;
}

注意:ClassA.h,ClassB.cpp和CMakeLists.txt也未添加,也不要放入很多代码中。

我正在编译此应用程序。一切正常。那是正常的。现在,我将文件ClassB.h更改为privateFct私有。然后,我要求重新编译该应用程序。结果是:

ninja: no work to do.
Generate all: OK.

那么,忍者没有发现ClassA.cpp依赖于ClassB.h的事实吗? cmake?视觉? 关于如何解决此问题的任何想法?

0 个答案:

没有答案