在同一個VS項目中,解決方案還包含多個項目的多個構建配置的正確和簡單的步驟方式是什麼?這些項目會有不同的構建配置。基本上,我正在尋找類似項目A的Dll Debug,Dll Release,靜態(庫)調試和靜態(庫)發佈,項目B與調試&版本構建.exe。在一個解決方案中具有多個(不同)構建配置的多個項目
4
A
回答
3
這不是它的工作方式。如果您讓庫選擇靜態鏈接CRT或使用CRT的DLL版本,則您也必須在EXE項目上具有相同的選項。混合這些選項通常會產生大量的鏈接器錯誤。即使您設法避免它們,當來自.lib的函數使用EXE中函數的不同存儲器分配器時,災難也會在運行時觸發。
使用「他們所有」的方法沒有多大意義。只要你知道你只會使用靜態庫並創建一個單一的EXE blob,那麼CRT的靜態版本就很有意義。使您的程序更容易部署。如果你有一天在考慮使用DLL,那麼只有CRT的DLL版本纔有意義。
0
實現此目的的最簡單方法是創建編譯相同源的多個項目。您可以爲每個需要的案例(DLL,Static Lib)提供項目。然後,您可以對這些項目進行多種配置,以便它們可以生成多種變體。
項目A(DLL)
- 「DebugStatic」 配置 - 調試,靜態CRT - > MYLIBDS.DLL
- 「ReleaseStatic」 配置 - 推出,靜態CRT - > MYLIBS.DLL
- 「 DebugDynamic」 - 調試,DLL CRT - > MYLIBD.DLL
- 「ReleaseDynamic」 - 發行,DLL CRT - >中是指mylib.dll
項目B(LIB)
- 「DebugStatic」 配置 - 調試,靜態CRT - > MYLIBDS.LIB
- 「ReleaseStatic」 配置 - 推出,靜態CRT - > MYLIBS.LIB
- 「DebugDynamic」 - 調試,DLL CRT - > MYLIBD.LIB
- 「ReleaseDynamic」 - 釋放,DLL CRT - > MYLIB.LIB
您可以用同樣的方法來生成對於ANSI與Unicode中,86與64,單線程與不同的二進制文件多線程等。每個項目都包含相同的集合根據需要使用帶條件代碼塊的源文件。然後,您可以添加這樣的事情與圖書館相關的頭文件,以使其更容易在相應的版本鏈接:
#ifdef _DEBUG
#ifdef _DLL
#pragma comment(lib, "MYLIBD.LIB")
#else
#pragma comment(lib, "MYLIBDS.LIB")
#endif
#else
#ifdef _DLL
#pragma comment(lib, "MYLIB.LIB")
#else
#pragma comment(lib, "MYLIBS.LIB")
#endif
#endif
相關問題
- 1. 同一解決方案的多個項目的構建順序
- 2. 在VSTS的單一解決方案中構建多個項目
- 3. 同一個項目不同的解決方案符號配置
- 4. 爲具有多個項目的解決方案創建nuget包
- 5. 我可以在一個解決方案配置中構建項目的多個配置嗎?
- 6. 如何在解決方案中構建多個項目,每個項目都有不同的目標?
- 7. VS2015在構建解決方案中發佈多個Web項目
- 8. 創建一個包含多個項目的BizTalk解決方案
- 9. 具有多個Web項目的解決方案的VSTS構建定義
- 10. TFS:具有多種配置的構建解決方案
- 11. 一個解決方案中的多個Web項目,配置轉換
- 12. 在一個解決方案中從多個項目創建一個NuGet包
- 13. 在一個解決方案中重定向多個項目
- 14. 在一個解決方案中加入多個項目
- 15. 多個WCF項目與解決方案中的單個項目
- 16. Cruisecontrol.net和msbuild - 我如何在一個項目下構建多個解決方案?
- 17. 將EntityFramework安裝到具有多個項目的解決方案
- 18. TeamCity使用多個項目構建Web解決方案ASP.NET MVC
- 19. 一個解決方案中的多個MVC3項目
- 20. 如何解決具有多個項目的VS2008解決方案中的LNK2019?
- 21. 使用xbuild從多項目解決方案構建一個項目
- 22. 解決方案中有多少個項目太多?
- 23. OS-X中的MonoDevelop嘗試創建具有多個項目的解決方案
- 24. VS2008構建同一個項目的多個配置
- 25. 在另一個項目中使用同一個解決方案但不同配置的一個類
- 26. 從命令行在解決方案中構建一個項目
- 27. 在解決方案中將多個項目合併到一個項目中
- 28. 爲多個項目創建單個解決方案
- 29. 解決方案的一個或多個單元測試項目
- 30. 多個項目Visual Studio解決方案不會調試一個項目的DLL
我要找如何庫源提供一個建立Dll或者靜態庫的選項(或兩者)。有可能是一個單獨的項目,建立一個示例可執行文件或測試。 – KTC 2010-06-01 00:31:01
@KTC:好的,沒關係。如果您選擇EXE不具備的配置,VS將只生成.libs。 – 2010-06-01 07:35:17