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