我已经编写了一个CUDA应用程序,该程序可以编译并运行。但是,如果尝试通过Eclipse CDT或kdbg调试/运行它们,则会收到错误消息,例如:
/path/to/executable: error while loading shared libraries: libnvToolsExt.so.1: cannot open shared object file: No such file or directory
或带有libcudart.so.10.2
的类似消息。
如果可执行文件独自运行,为什么会发生这种情况,我该怎么办?
有关我的系统的信息:
LD_LIBRARY_PATH
条目-您在手动安装后可能已添加了该目录-那就消失了。除了环境,您还可以使用链接器的配置文件指定共享库搜索目录。在Linux上,链接器为GNU ld,其配置文件为/etc/ld.so.conf
或/etc/ld.so.conf.d/
中的文件(在您的系统中为后者)。因此,添加一个名为/etc/ld.so.conf.d/cuda
的文件,其内容是带有[missing]库的目录,您可能已经在LD_LIBRARY_PATH
中了;在您的系统上,应该是:
/usr/local/cuda-10.2/targets/x86_64-linux/lib
(所以是单行文件。)这也应该kdbg和Eclipse CDT来调试您的应用程序。