2010-02-23 107 views
10

我一直使用Visual Studio Dependencies選項來確保,例如,在構建我的C++項目時,還構建了任何相關的LIB或DLL項目。然而,我一直聽到人們提到'參考',並想知道,VS 2010即將到來,我應該改變我如何做到這一點。MSVC依賴關係與參考文獻

使用對依賴關係的引用有什麼好處,或者前者是.NET特性嗎?我目前使用VS2008。

回答

16

我喜歡用引用,因爲這些被引入在VS 2005的區別非託管C++(非託管C++開發者的角度看)是,引用存儲在的.vcproj文件,而項目依賴存儲在的.sln文件。

這種差異意味着,當你重用你的項目在不同的解決方案(我經常這樣做),你不需要再次重新定義了項目間的關係。

Visual Studio足夠聰明,在建立引用關係時不會嚴重依賴於項目的路徑。

+1

我不知道你可以讓本地C++項目引用其他本地C++項目。我認爲它展示了描述不是依賴一個更好的接口「項目依賴...」對話框,太(唯一的缺點是,你必須單獨打開它爲每一個項目,但是這是一個非常小問題)。 – 2010-02-23 09:43:59

+0

@Rob:我想你應該在這裏接受我接受的答案。 – 2010-02-23 09:45:05

+1

+1:在解決方案中引用其他項目也正在對版本控制金德當有到.vcproj文件小的變化,而不是大的變化,以.sln文件。 – quamrana 2010-02-23 12:16:59

1

'引用'是一個.NET的東西,不適用於本機C++;他們不同於依賴項目。解決方案中的依賴項目是一個必須在另一個項目之前(或依賴於依賴關係的方式之後)構建的項目。

引用是包含項目中使用的類型的程序集。本地C++項目中類似的事情可能是項目使用的包含文件和鏈接到的.lib文件(即使它們不是在解決方案的另一步中構建的,本地C++項目也會「消耗」這些項目) 。

+4

-1參考文獻DO適用於本地C++,其操作方式與託管版本非常相似。它強制對項目進行「依賴」(將始終建立引用的項目),並將項目的輸出添加到鏈接器。這意味着您在鏈接時不需要擺弄庫路徑和名稱。 – 2012-06-12 23:34:40

1

它曾經在VS2008中對靜態庫的項目依賴關係會自動導致正確的配置(Debug | Release)被鏈接進來。看起來VS2010在移動到msbuild時失去了這種能力。嘆。

+0

它不會丟失,您可以在單擊Visual Studio 2015中的引用後更改屬性窗口中的這些選項 – codekiddy 2015-11-21 20:57:05