0
The toolkit and items 1-6 of the NVIDIA_CUDA SDK have been installed and compiled , but when it gets to '6_Advanced/cdpLUDecomposition' the following error message appears.

  /usr/local/cuda-5.0/bin/nvcc -m64 -Xcompiler -fopenmp -gencode arch=compute_35,code=sm_35  -o cdpLUDecomposition dlaswp.o dgetf2.o dgetrf.o cdp_lu.o cdp_lu_main.o -L/usr/local/cuda-5.0/lib64 -lcublas -lcublas_device -lcudadevrt -lgomp 
/usr/local/cuda-5.0/lib64/libcublas.so: error: undefined reference to 'dlsym'
/usr/local/cuda-5.0/lib64/libcublas.so: error: undefined reference to 'dlopen'
/usr/local/cuda-5.0/lib64/libcublas.so: error: undefined reference to 'dlclose'
collect2: ld returned 1 exit status
make[1]: *** [cdpLUDecomposition] Error 1

私はUbuntuとCudaの両方に不慣れですが、makeの前にLD_FLAGS = -ldlを追加しようとしましたが、これは役に立ちませんでした。そして、PATHとLD_LIBRARY_PATHをNvidiaの推奨事項に設定しました。また、すべてのドライバーを更新し、SDKdeviceQueryプログラムから有効な結果を取得できました。

私が試した他のすべてがまだ機能していなかったので、どんな助けもいただければ幸いです。

4

1 に答える 1

1

追加-ldlするだけで十分です。サンプル( cd 6_Advanced/cdpLUDecomposition)のディレクトリに入り、 でビルドコマンドを確認しmakeます。私のマシンでは

/usr/local/cuda-5.0/bin/nvcc -m64 -Xcompiler -fopenmp -gencode arch=compute_35,code=sm_35 -o cdpLUDecomposition dlaswp.o dgetf2.o dgetrf.o cdp_lu.o cdp_lu_main.o -L/usr/ local/cuda-5.0/lib64 -lcublas -lcublas_device -lcudadevrt -lgomp

次のいずれかを実行できます

  • を手動で追加してビルド コマンドを実行する-ldlか、
  • 適切な LDFLAGS (行 89) に追加することにより、ディレクトリ内の Makefile を修正します-ldl。これは、次の再構築のためにクリーンで安全です。

ldd cdpLUDecomposition次に、/lib/x86_64-linux-gnu/libdl.so.2 にリンクされていることを示します。

于 2013-02-09T11:55:26.237 に答える