我正在尝试使用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编译器工具包版本17.10。
答案 0 :(得分:1)
我们(PGI)只提供编译OpenACC和CUDA Fortran代码所需的CUDA工具包部分。我们的软件包不适用于独立的CUDA C开发。为此,请直接从NVIDIA https://developer.nvidia.com/cuda-downloads
下载完整的CUDA 9.0工具包