2010-04-08 114 views
1

我有一個包含多個項目的解決方案。其中一些項目共享源文件。我已經建立了我的項目樹,以便共享源文件的項目在一起。我的問題是,當我做一個乾淨的,並建立共享源文件重新編譯爲每個項目,不只是第一個使用它們。結果是,最初的構建需要比它應該更長的時間,並且我必須不止一次構建滿足所有依賴關係(需要重新鏈接)。項目是gcc項目中的一個端口,它使用一系列make文件來執行構建。 make文件不會重複編譯。有沒有辦法來處理上述情況,以便在Visual Studio中滿足依賴關係,就像人們期望的那樣?是由於源文件和.idb和.pdb文件之間的依賴關係造成的問題?如何在同一解決方案的不同項目中使用相同的obj文件

更新:我真正需要的是告訴VS在具有不同DLL和LIB名稱的相同obj文件上執行重新鏈接的方式。我可以通過在重新鏈接項目中包含.obj文件來解決此問題,但無法弄清楚如何創建調試/發佈版本。在項目文件的部分$(IntDir)似乎不會被解析。所以......

在PROJECT1

在file1.c file2.c中file3.c中鏈接到dll1.dll,dll1.lib

然後在項目2從PROJECT1對象文件再次得到只掛這段時間分爲 dll2.dll,dll2.lib

project3同樣的事情。等

我發佈了這個MS論壇也還沒有收到答案。

+0

對於VS 2010(包括完整版和快速版),請參閱我對[什麼是Visual Studio項目參考?](http://stackoverflow.com/a/23524630/269126)和此MSDN指南的回答:[演練:創建和使用靜態庫(C++)](http://msdn.microsoft.com/en-us/library/ms235627(v = vs.100).aspx) – Lumi 2014-05-07 17:50:25

回答

1

如果您可以重新組織代碼來執行此操作,請將共享的.obj文件構建到庫項目中,然後您可以從相關項目中鏈接該庫。

這是我能想到解決問題的唯一「乾淨」方式 - 我能想到的其他任何事情都可能涉及「戰鬥」或「欺騙」視覺工作室,這通常是一個糟糕的主意。

+0

我曾考慮過這個問題,但由於我正在做從一個現有的開源項目中移植出來,我試圖儘可能地模仿'make'系統。 – Steve 2010-04-09 00:08:41

+0

此外,我可以包含.obj文件作爲項目文件沒有其他源文件,它工作正常。唯一的問題是,似乎沒有指定「調試」或「發佈」版本的方法。換句話說,部分顯然需要硬編碼的相對路徑。 – Steve 2010-04-09 00:12:33

相關問題