1

应我的项目依赖顺序是:项目依赖顺序 - VS2013

A.LIB取决于ab.lib,A.LIB取决于ac.lib

ab.lib取决于A.LIB,ac.lib取决于A.LIB

从A.LIB包含由其他库使用基类/功能

FILE A.H

class A 
{ 
public: 
virtual void Update(); 

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

从ab.lib覆盖,实现并扩展类A

FILE b.h

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

从ac.lib overrid ES,实现并扩展A级

FILE CH

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

已经测试了类似的虽然比这个简化版本的Visual Studio 2013更复杂的情况似乎并不关心哪种方式圆我设置我的依赖起来了。这让我很担心。

感谢您提供的任何帮助。

回答

1

让我们只说A类的声明是在A.H

你怎么编译ab.cpp(含B类的定义),通过#include'ing “A.H”?
如何通过#include“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一样的东西。

希望澄清。

+0

你的假设是正确的,我会编辑我的问题,使之明显。感谢您解释为什么VS2013不会抱怨。因此,应该正确地设置依赖关系。谢谢。 – Hinchy

+0

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

+0

你能否详细说明为什么是这种情况。 (也可以作为回答发布,而不是评论,我会标记你的详细答案)。提前致谢。 – Hinchy