代码之家  ›  专栏  ›  技术社区  ›  Bolster

尝试“使”CUDA SDK,ld找不到库,ldconfig说它可以

  •  9
  • Bolster  · 技术社区  · 16 年前

    我知道还有很多类似的问题,但是没有一个解决方案对我有用。

    基本上,制作sdk示例文件, /usr/bin/ld: cannot find -lcuda 这很容易“找到库并把它扔给ldconfig”,除了ldconfig已经说它拥有它…

    $ sudo ldconfig -v | grep cuda
    /usr/local/cuda/lib64:
        libcudartemu.so.3 -> libcudartemu.so.3.0.14
        libcudart.so.3 -> libcudart.so.3.0.14
    /usr/local/cuda/lib:
        libcudartemu.so.3 -> libcudartemu.so.3.0.14
        libcudart.so.3 -> libcudart.so.3.0.14
        libcuda.so.1 -> libcuda.so.195.36.15
        libcuda.so.1 -> libcuda.so.195.36.15
        libicudata.so.42 -> libicudata.so.42.1
    

    我查过了,有个符号链接 libcuda.so -> libcuda.so.1 但我还是很困惑为什么 libcuda.so -> ... 不露面

    我一定错过了一些非常明显的东西。有什么想法吗?

    3 回复  |  直到 15 年前
        1
  •  7
  •   Ignacio Vazquez-Abrams    16 年前

    ldconfig 只处理运行库,而 ld 处理构建时库。根据您安装CUDA库的方式,您可能需要为构建时使用的symlink安装一个额外的包,或者您可能需要传递 -L 选择gcc或ld以告诉它构建时符号链接在哪里。

        2
  •  7
  •   ppirate    15 年前

    添加到.bash_配置文件

    export PATH=/usr/local/cuda/bin:$PATH
    export LPATH=/usr/lib/nvidia-current:$LPATH
    export LIBRARY_PATH=/usr/lib/nvidia-current:$LIBRARY_PATH
    export LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH
    

    和source.bash_配置文件

        3
  •  1
  •   zvrba    16 年前

    尝试在编译器/链接器命令行上的-l cuda之前添加-l/usr/local/cuda/lib。