簡體   English   中英

Visual Studio 2010不會從應該依賴的依賴項目中自動循環靜態庫

[英]Visual Studio 2010 not autolinking static libraries from projects that are dependencies as it should be supposed to

  • 使用C ++控制台命令行項目創建新解決方案
  • 創建一個新項目,一個C ++靜態庫
  • 使命令行項目依賴於庫
  • 確保在Configuration => Linker => General(默認情況下)中打開“Link Library Dependencies”
  • Visual Studio仍然不會鏈接庫。

我怎樣才能解決這個問題? 它在Visual Studio 2008中有效。

這仍然有效,但在VS 2010中有所改變

“使用VS2010,我們停止支持定義隱式引用的項目依賴項,我們還引入了一種在項目級別定義項目依賴項的新方法。由於項目引用和項目依賴關系是接近的概念,兩者都適用於項目,因此它是有意義的讓它們以一致的方式在項目文件中一起表示。正如您將在下面的片段中看到的那樣,項目引用定義和項目依賴項定義之間的唯一區別在於元數據,它定義了輸出程序集包含/排除到/從主項目鏈接命令行。雖然我們沒有刪除“項目依賴項”對話框,但我們建議通過“框架和參考”對話框定義新的項目依賴項。您需要在屬性頁面中設置“參考組件輸出”屬性對於項目依賴項,UI為false,對於項目引用,UI為true。“

只需右鍵單擊控制台項目,選擇“屬性 - >公共屬性 - >框架和參考 - >添加新參考”,然后添加靜態庫項目; 還要檢查右側是否有“Link Library Dependencies”。 似乎適用於調試和發布版本。 你每天學習新的東西。 ;)

他們更改了在VS2010中添加C ++項目依賴項的UI,但奇怪的是,沒有刪除舊的UI,或以任何方式表明它不再有效。

要在VS2010中創建依賴項,您需要使用“添加新引用”(可以在項目屬性中找到),也可以在項目的右鍵單擊菜單中(這里沒有VS來檢查)

舊的“項目依賴關系”對話框現在基本上已經破解。

對於MSVC 14(2015版),右鍵單擊項目,然后"Add->Reference..."並檢查所有需要的依賴項。

是的,它在2010年和2015年版本之間發生了變化。 有趣!

如果您要鏈接一個包含資源的項目 - 您需要直接在鏈接器輸入依賴項列表(項目屬性對話框)中指定.res文件,因為上述配置無法獲取它。

UPDATE

在MSVC 2017中仍然是相同的(新)行為

我相信舊的UI(依賴項)會影響Visual Studio的構建順序,在IDE中構建時,可以獲取信息。 新項目配置系統在每個項目文件中嵌入引用,以便您可以從IDE外部構建(而在以前的版本中,您不能,因為您不會獲得依賴項的自動鏈接,因為依賴項僅在解決方案級別完成)。

在新系統中,還有一些問題涉及更復雜的項目; 具體來說,所有生成的二進制項目都需要對每個依賴庫進行顯式引用才能正確構建,而以前它們可以從其他依賴庫中有效地繼承。 但同樣的根本原因。

暫無
暫無

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

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