首页 > 解决方案 > 使用 NVCC 编译/链接时,预处理指令 #\ 无效

问题描述

我有一个大型代码库,我试图通过 RAJA 向其中添加 GPU 计算。目前我看到

main.o:24:16: error: invalid preprocessing directive #\

我如何对此进行调查以获取有关此错误可能来自何处的信息?

编译器:

.../cuda-10.1.243/bin/nvcc

相关标志:

CXX = /usr/tce/packages/cuda/cuda-10.1.243/bin/nvcc
LINK = time $(CXX) -std=c++11 \
-DENABLE_RAJA \
-DENABLE_CUDA=On \
-DENABLE_OPENMP=Off \
--expt-extended-lambda \
-x cu \
-arch=sm_70 \

我已经使用了命令

grep -r --include=\*.h --include=\*.cpp --include=\*.o '#\\' *

搜索这个问题可能来自哪里,但我没有得到任何点击。

以下是 Make 输出的一些示例(缩写)

time /usr/tce/packages/cuda/cuda-10.1.243/bin/nvcc -std=c++11 -DENABLE_RAJA -DENABLE_CUDA=On -DENABLE_OPENMP=Off --expt-extended-lambda -x cu -arch=sm_70  -c -I/includestuff  main.cpp -o main.o 

time /usr/tce/packages/cuda/cuda-10.1.243/bin/nvcc -std=c++11 -DENABLE_RAJA -DENABLE_CUDA=On -DENABLE_OPENMP=Off --expt-extended-lambda -x cu -arch=sm_70  -c -I/includestuff   /somepath/Funcs.cpp -o /somepath/Funcs.o 

......some other lines like the one above.....

time /usr/tce/packages/cuda/cuda-10.1.243/bin/nvcc -std=c++11 -DENABLE_RAJA -DENABLE_CUDA=On -DENABLE_OPENMP=Off --expt-extended-lambda -x cu -arch=sm_70  main.o ~GIANT LIST OF .o FILES~  -o prog.exe

标签: c++compiler-errorslinkerlinker-errorsnvcc

解决方案


推荐阅读