2012-03-12 73 views
0

因爲我想我的編譯程序(使用Cusparse)以下行出現了:麻煩與CUSPARSE工作

TMP/tmpxft_00001048_00000000-13_matvec.o:在功能main': tmpxft_00001048_00000000-1_matvec.cudafe1.cpp:(.text+0x6d5): undefined reference to cusparseCreate」

同樣出來了,不僅用於cusparseCreate,還用於cusparseCreateMatDescr,cusparseSetMatType,cusparseSetMatIndexBase,cusparseXcoo2csr,cusparseDsctr, cusparseDcsrmv_v2,cusparseDestroyMatDescr和cusparseDestroy。這是什麼意思?

+1

你是如何編譯的?看起來你沒有鏈接到cusparse庫。關於如何鏈接庫的答案取決於操作系統。 – 2012-03-12 21:30:51

+1

如何解決windows visual studio 2010的相同問題? – Terminal 2012-11-27 08:44:24

+0

@Terminal,這裏是如何解決與Visual Studio的問題:http://stackoverflow.com/questions/13570285/how-to-link-library-eg-cublas-cusparse-for-cuda-on-windows – Veridian 2016-11-08 17:21:11

回答

3

您需要鏈接到cuSPARSE庫。由於您使用的是Linux,因此在您的nvcc命令行中添加-lcusparse應該足夠了。

請注意,如果系統在執行時未能找到鏈接庫,您可能還需要將CUDA庫路徑添加到LD_LIBRARY_PATH環境變量。

+0

我錯過了一些東西,或者有沒有一種方法可以推斷OP從他問的問題中使用Linux? – 2012-03-13 15:11:54

+0

錯誤消息是一個典型的Linux錯誤消息,Windows會說類似「無法解析的外部符號」。我不知道Mac會說什麼,所以有可能他使用的是Mac,但在這種情況下,分辨率將是相同的。對於Windows,按照以下說明,可以將cusparse.lib與cudart.lib一起添加:http://stackoverflow.com/a/2047892/214473(VS2005/2008)或http://stackoverflow.com/a/7285235/214473( VS2010)。 – Tom 2012-03-13 15:53:01

+0

我一直在系統中看到這些錯誤信息!我無法注意到這一點很荒謬。感謝澄清。 – 2012-03-13 17:14:37