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建议。我还更新了所有驱动程序,并且能够从SDK deviceQuery程序中获得有效的结果。
任何帮助都会受到赞赏,因为我尝试的其他任何东西都没有用。
答案 0 :(得分: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
或-ldl
附加到正确的LDFLAGS(第89行)来修复目录中的Makefile,这对于下次重建更干净,更安全 ldd cdpLUDecomposition
然后显示它链接到/lib/x86_64-linux-gnu/libdl.so.2。