【问题标题】:project dependencies order - VS2013项目依赖顺序 - VS2013
【发布时间】:2015-11-22 21:54:45
【问题描述】:

我的项目依赖顺序应该是:

a.lib 依赖于 ab.lib,a.lib 依赖于 ac.lib

ab.lib 依赖于 a.lib,ac.lib 依赖于 a.lib

来自 a.lib 包含其他库使用的基类/函数

文件 a.h

class A
{
public:
 virtual void Update();

 // base function declarations here
 // ...
}

来自 ab.lib 覆盖、实现和扩展类 A

文件 b.h

#include "a.h"
class B : public A
{
public:
 // overridden functions here
 // ...
 void Update();
}

来自 ac.lib 覆盖、实现和扩展类 A

文件 c.h

#include "a.h"
class C : public A
{
public:
 // overridden functions here
 // ...
 void Update();
}

测试了一个类似的场景,尽管它比这个简化版本的 Visual Studio 2013 更复杂,但我似乎并不关心我设置依赖项的方式。这让我很担心。

感谢您提供的任何帮助。

【问题讨论】:

    标签: c++ visual-studio visual-c++ dependencies dependency-properties


    【解决方案1】:

    假设A类的声明在a.h中

    如何通过#include'ing "a.h" 编译 ab.cpp(包含 B 类的定义)?
    如何通过#include'ing "a.h" 编译 ac.cpp(包含 C 类的定义)?

    对吗?

    这意味着编译时依赖已经设置好了,因此 VS 2013 不会报错。

    ab.lib 依赖于 a.lib,ac.lib 依赖于 a.lib

    • 此项目依赖顺序是正确的,因为当您尝试构建 ab.lib 时,VS 2013 将首先检查 a.lib 是否是最新的,如果发现 a.lib 是最新的,然后 VS继续构建 ab.lib。如果不是,则首先构建 a.lib。这很明显,因为 ab.lib(B 类)依赖于 a.lib(A 类)。与 ac.lib 相同。

    希望这可以澄清。

    【讨论】:

    • 您的假设是正确的,我将编辑我的问题以使其显而易见。感谢您解释为什么 VS2013 不抱怨。所以说应该正确设置依赖关系。谢谢。
    • ab.lib 依赖于 a.lib,ac.lib 依赖于 a.lib
    • 您能否详细说明为什么会这样。 (也作为答案而不是评论发布,我会将您详细说明的答案标记为这样)。提前致谢。
    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    相关资源
    最近更新 更多