我想在我的.cu文件中包括PCL和CUDA头文件,但是会发生错误。 即使我还没有开始编写代码。
#include "pcl/point_cloud.h"
#include "pcl/point_types.h"
#include "pcl/gpu/containers/device_array.h"
#include "Reconstruction.h"
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include "crt\device_functions.h"
#define __CUDA_INTERNAL_COMPILATION__
#include "math_functions.h"
#undef __CUDA_INTERNAL_COMPILATION__
#include "device_functions.h"
如上所示,如果我同时包含 PCL 和 CUDA 头文件,则会发生错误MSB3721
和C1060
:>
错误 MSB3721 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\bin\nvcc.exe" -gencode=arch=compute_50,code=\"sm_50,compute_50\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include" -G --keep-dir x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static -g -D_CRT_SECURE_NO_WARNINGS -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Fdx64\Debug\vc141.pdb /FS /Zi /RTC1 /MDd " -o x64\Debug\convolutionSeparable.cu.obj "D:\vc_projects\platerecog\platerecog\platerecog\convolutionSeparable.cu"”已退出,返回代码为 2。 platerecog C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\BuildCustomizations\CUDA 9.2.targets 712
错误 C1060 编译器的堆空间不足 platerecog D:\PCL\pcl-pcl-1.9.1\build\include\pcl\point_types.h 424
但是如果我仅包含 PCL 头文件,则代码可以成功编译。 如果我仅仅包含 CUDA 头文件,则代码也可以成功编译。