2014-04-29 37 views
1

我意識到我必須應對這樣的問題。使用Visual C++ 2008編譯一箇舊的程序,我得到了錯誤鏈接時,如何找出哪個源lib指的是一個不存在的目標庫

LINK : fatal error LNK1104: cannot open file 'LIBC.lib' 

檢查VC項目設置後,我認爲,這是由編譯舊LIB(將鏈接到最終的EXE)引起的嵌入了LIBC.LIB鏈接指令的Visual C++ 6時代(由cl /ML...引起)。

因爲在我的項目中增加了很多庫,我想我需要快速找出哪些庫包含LIBC.LIB鏈接指令,以便我可以修復這些庫以便使用/MT

順便說一句:使用/NODEFAULTLIB:LIBC.LIB鏈接器選項作爲解決方案是不正常的,因爲單線程CRT和多線程CRT之間存在二進制接口不兼容。

+0

不是['/VERBOSE'](http://msdn.microsoft.com/en-us/library/wdsk6as6.aspx)選項給你你需要什麼? –

+0

我試過''/ VERBOSE:LIB''和''VERBOSE:REF'',但沒有明確指示LIBC.LIB的參考源。 –

回答

1

我不知道,因爲我還沒有在VisualStudio的developped了一段時間,但dumpbin工具可能給你關於你的庫相關信息。作爲命令行工具,您可以輕鬆地將其輸出捕獲到文本文件中並在其中搜索。

+0

當沒有更好的選擇時,聽起來像是一個可行的解決方案。 –

相關問題