我建立使用Microsoft Visual C++ 2005庫的主要更新後的應用程序,我得到我的清單文件中的以下條目:確定依賴的來源MSVC的清單發生器
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
然而,當,我在結果可執行文件上使用了Dependency Walker,我沒有在列表中看到MSVC80D.DLL,這對我來說有點令人驚訝。
我也嘗試將鏈接器設置爲「詳細」模式,以查看它是否會告訴我清單中指示的依賴項來自哪裏。唉,那裏的信息並沒有說明問題。
我也瀏覽了我鏈接的所有庫,看看它們中的任何一個是否使用調試CRT。據我所知,他們都沒有。
如何確定導致此問題的庫是什麼?當我按照原樣分發可執行文件時,我得到了一個並行錯誤,可能是因爲自動生成的清單中存在此條目。
非常感謝您提供的任何幫助......經過幾天的試圖弄清楚發生了什麼,我開始對這個問題感到非常沮喪。
我花了一天的時間試圖找出問題,並認爲我可以澄清。在這一點上似乎很清楚,依賴不是來自任何實際的庫。我認爲我不明白的一件大事是:是否有可能導致清單生成器包含調試CRT的其他設置? – 2011-06-09 02:16:42
另一個更新:我決定建立一個簡單的項目,並開始包括我一次使用的庫。使用此方法,我確定libjpeg正在導致MSVC將「DebugCRT」行添加到清單。 奇怪的是,dumpbin在libjpeg.lib文件中顯示不依賴於MSVCRTD。可以肯定的是,我使用nodebug = 1選項重建了libjpeg,並得到了相同的結果。 我現在的問題是:爲什麼當我添加libjpeg時,清單生成器會將DebugCRT添加到清單中,即使庫本身似乎不依賴於調試CRT? – 2011-06-09 03:30:16