PGI编译器中的CUDA工具包缺少link.stub

时间:2017-11-10 08:02:06

标签: c++ cuda pgi

我正在尝试使用PGI编译器附带的CUDA工具包9.0来构建我的CMake / CUDA项目。不幸的是,当我尝试这样做时,运行cmake时出现以下错误:

/home/user/opt/pgi/linux86-64/2017/cuda/9.0/bin/nvcc -ccbin=/usr/bin/g++-6
-shared -dlink CMakeFiles/cmTC_858b1.dir/main.cu.o -o
CMakeFiles/cmTC_858b1.dir/cmake_device_link.o

g++-6: error:
/home/user/opt/pgi/linux86-64/2017/cuda/9.0/bin/crt/link.stub: No such file or directory

实际上,上述目录中不存在此类文件。但是,如果我转到与/usr/lib/nvidia-cuda-toolkit/bin一起安装的系统的CUDA工具包目录(apt-get),那么文件crt的目录link.stub就在那里。如果我只是将crt目录从该位置复制到PGI CUDA工具包目录,CMake就会停止抱怨,并且所有内容都会编译(好吧,我收到关于其中一个cuFFT库的链接器错误,但我认为这是一个完全不同的问题)。

  • link.stub文件的目的是什么?
  • 为什么PGI编译器附带的CUDA工具包中没有它?
  • 是否有更多"温和"处理这个问题的方法?我不喜欢复制粘贴解决方案,因为我的系统的CUDA工具包版本是8.0,而PGI编译器工具包中的版本是9.0。

我正在使用PGI编译器工具包版本17.10。

1 个答案:

答案 0 :(得分:1)

我们(PGI)只提供编译OpenACC和CUDA Fortran代码所需的CUDA工具包部分。我们的软件包不适用于独立的CUDA C开发。为此,请直接从NVIDIA https://developer.nvidia.com/cuda-downloads

下载完整的CUDA 9.0工具包