2016-03-15 68 views
0

我有一個項目(64位),這是花了很長時間來鏈接。診斷慢速鏈接

我設置鏈接爲詳細然後觀看了各類文字閃爍,然後它說...

1> Finished searching libraries 
1> 
1> Finished pass 1 
1> 
1> Generating code 

這是它仍然是一個一分鐘。我想知道,是否可能會花時間,因爲它嘗試了一些奇特的優化......或者可能是因爲我有大量的靜態數據?有沒有可能有助於加快速度的鏈接器設置?

順便說一句,我有16GB的RAM和和編譯器和項目i7的PC都存儲在一個固態驅動器。

編輯:它與調試版本鏈接速度提高10倍,但我需要使用發行版本,否則程序運行速度太慢。

編輯:下面您可以從(快速)調試配置中看到優化設置對話框。啓用COMDAT摺疊,函數順序和鏈接時間代碼生成的選項都是空白的......我不知道「空白」是什麼意思。我無法在發佈配置中將啓用COMDAT摺疊,函數順序和鏈接時間代碼生成設置爲空,下拉菜單中的每個都沒有空白作爲選項,我不知道按順序設置它們爲鏈接器提供最少量的工作。

enter image description here

編輯:似乎有不被禁用鏈接時代碼生成的方式!在發佈配置中這不是一個選項!

+0

您可以嘗試禁用LTO。但等待10倍的時間鏈接發佈版本與調試版本聽起來很正常。 – Mikhail

+0

我想,但不明白選擇什麼來實現這一點。 – Mick

+0

在鏈接器/常規下,將Show Progress設置爲「詳細」,然後查看是否爲您提供了特別是需要特別長時間的線索。 – abelenky

回答

2

除了禁用鏈接時優化,你可能也想嘗試禁用整個程序的優化(在選擇「C/C++ - >優化 - >所有程序優化」)。

Screenshot

the C++ team一些附加選項:

  1. /增量(接頭)
  2. /ZC:直列(編譯器)
  3. /調試:FASTLINK(接頭)
  4. /LTCG:增量(連接器)

請注意,您可以在'配置屬性>鏈接器>所有選項'下的VS中找到所有鏈接器選項。您可以搜索例如'鏈接時間碼生成'。

+0

我看不到「配置屬性>鏈接器」下的「所有選項」..我看到的只是一般,輸入,清單文件,調試,系統,優化,嵌入式IDL,高級和命令行。 – Mick

+0

似乎你的版本VS與我的略有不同:-( – Mick