簡體   English   中英

如何在Visual Studio 2015中構建具有循環依賴項的C ++項目?

[英]How can I build a C++ project in Visual Studio 2015 with circular dependencies?

首先,這是我繼承的舊代碼,我希望有一天可以清理它並使之完美,但是今天我不能這樣做。 因此,我要求不要給出諸如“重寫整個內容以便沒有循環依賴項”之類的答案。

我有44個項目的解決方案。 大多數項目構建DLL,少數​​構建可執行文件。 有多個項目依賴於另一個項目,該項目以某種方式要求第一個。 有些就像A要求B.lib和B要求A.lib一樣簡單,而另一些則是較長的鏈,這些鏈又會環回。

當我繼承代碼時,它並不干凈,並且源代碼中仍然有舊的構建文件,即.LIB文件。 在不刪除這些.LIB文件的情況下,所有44個項目都可以構建,並且所有舊的.LIB文件都將被新建的文件替換。 這告訴我,如果我第二次進行構建,則不會使用任何舊的.LIB,現在我的所有可交付成果完全是從當前來源生成的。

這給我帶來了一個問題:我想從版本控制中清除所有無源文件,但是如果這樣做,我將無法再構建項目。

為了進一步澄清,構建DLL的項目將作為一個中間步驟創建一個.LIB文件,並將這些文件復制到每個項目的“附加庫目錄”屬性和所需的各個.LIB文件中列出的公用文件夾中。贈予項目位於該項目的“其他依賴項”屬性中。

編輯:我不打算對代碼進行大修。 我知道創建了所有項目所需的所有目標文件。 我也知道這種結構不是最佳的。 但是,我確實相信,如果鏈接器知道在哪里查看,它可以找到所需的所有內容。

僅從A中提取B所需的部分到新的DLL“ C”中。 然后使兩個A都依賴於B和C,而B僅取決於C。

這並非易事,而只是一次不斷地提取一點點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM