2009-11-18 132 views
1

我在嘗試在CUDA SDK中運行示例代碼時出現此錯誤。我有CUDA 2.3和Visual Studio 2008CUDA編譯錯誤

LINK:致命錯誤LNK1181:無法打開輸入文件 'cutil32D.lib'

任何指針如何解決此問題?

回答

1

您的MSVC項目需要包含庫鏈接cutil32D.lib。一旦你將它指定爲一個庫,鏈接器需要包含在最終的二進制文件中,這個問題就會消失。似乎圖書館在鏈接器將要查找的位置丟失。您必須更改庫搜索路徑或將該文件移動到鏈接器已經查找的目錄中。

+0

如何在Visual Studio 2008中做到這一點? – emkrish 2009-11-18 08:12:50

+1

emkrish, 打開您的Visual Studio項目的屬性,單擊鏈接器,將路徑添加到「其他庫目錄」 閱讀Visual Studio幫助文檔:http://msdn.microsoft.com/en-us/library /1xhzskbe.aspx – 2009-11-18 17:27:12

5

由於您正在編譯SDK示例,所以項目文件可能是正確的。更有可能的是,你還沒有建立cutil庫。轉到SDK安裝目錄,然後進入「C」目錄。你會看到一個「公共」目錄,在那裏打開cutil.sln解決方案(或VS2008的cutil_vc90.sln),並在你的平臺的發佈和調試模式下構建它。

然後再次嘗試您的示例。

cutil庫用於避免通過所有示例複製相同的代碼,如果您開始自己的項目,我會避免重複使用cutil庫並編寫自己的檢查器。例如,如果您檢測到CUDA錯誤,而不是像在cutil中完成的那樣調用exit(),您可能應該優雅地失敗。

強烈推薦SDK中包含的cuda.rules文件!使用這個,您可以將.cu文件添加到任何項目,Visual Studio將知道如何編譯它們並將它們鏈接到最終的可執行文件中。簡單!

1

我遇到了同樣的問題。事實證明,我不僅需要構建cutil項目,還需要在SDK的共享文件夾下創建shrUtils項目。