首页 文章

ubuntu上的pycuda安装错误:/ usr / bin / ld:找不到-lcuda

提问于
浏览
1

我是初学者并在ubuntu 11.10上安装pycuda2011.2.2,但无法完成它 . Cuda是4.0 .

我已经安装了库:

$ sudo apt-get install build-essential python-dev python-setuptools libboost-python-dev libboost-thread-dev -y

像这样调用configure.py:

$ ./configure.py --cuda-root = / usr / local / cuda --cudadrv-lib-dir = / usr / lib --boost-inc-dir = / usr / include --boost-lib-dir = / usr / lib --boost-python-libname = boost_python-mt-py27 --boost-thread-libname = boost_thread-mt

但是,当我这样做时:

.....@ubuntu:~/pycuda-2011.2.2$ make -j 4

我收到此错误:

/ usr / bin / ld:找不到-lcuda / usr / bin / ld:在搜索-lcurand时跳过不兼容的/usr/local/cuda/lib/libcurand.so

为什么这个错误?

谢谢 .

2 回答

  • 0

    您需要设置 LDFLAGS 环境变量,以便pycuda设置可以找到 libcuda.so ,它在ubuntu系统上位于非标准位置( /usr/lib/nvidia-current ) .

    pycuda 2012.1的安装完全基于distutils,不涉及 Makefile . 您可以通过运行 ./configure.py 并使用相应的选项 LDFLAGS=/usr/lib/nvidia-current python setup.py install 来安装pycuda .

  • 1

    如果您使用nvidia卡的一些较新的驱动程序,如nvidia-313(这就是我使用的),那么文件libcuda.so(昵称为lcuda,我不知道为什么)可能不在cuda安装目录中(默认情况下,它是/ usr / lib / cuda) . 相反,您可能必须自己找到它 . 做:

    $ find /usr/lib/*/libcuda.so

    对我来说,结果是

    /usr/lib/nvidia-313-updates/libcuda.so

    所以,在安装pycuda时,我这样做:

    $ python configure.py --cuda-root = / usr / lib / nvidia-313-updates

    $ make

    $ sudo make install

    然后,

    $ optirun python test / test_driver.py

    要么

    $ optirun python some_program_which_imports_pycuda.py

    应该工作正常 .

相关问题