C++ CMake:有没有办法将期权传递给g++;但不适用于nvcc

C++ CMake:有没有办法将期权传递给g++;但不适用于nvcc,c++,c++11,cuda,cmake,nvcc,C++,C++11,Cuda,Cmake,Nvcc,在CMakeList.txt中,我确实希望将-std=g++0x添加到g++选项中,如下所示: set(CMAKE\u CXX\u标志${CMAKE\u CXX\u标志}-std=gnu++0x) 但是,所有的CMAKE\u CXX\u标志也通过-Xcompiler标志(自动完成)传递给nvcc。但是,nvcc不适用于gnu++0x标准 有没有一种方法可以将标志传递给g++而不是nvcc 编译器由指定 if(CUDA_NVCC_HOST_COMPILER) list(APPEND CUD

在CMakeList.txt中,我确实希望将
-std=g++0x
添加到g++选项中,如下所示:
set(CMAKE\u CXX\u标志${CMAKE\u CXX\u标志}-std=gnu++0x)

但是,所有的
CMAKE\u CXX\u标志
也通过
-Xcompiler
标志(自动完成)传递给nvcc。但是,nvcc不适用于
gnu++0x
标准

有没有一种方法可以将标志传递给g++而不是nvcc

编译器由指定

if(CUDA_NVCC_HOST_COMPILER)
    list(APPEND CUDA_NVCC_FLAGS "--compiler-bindir=${CUDA_NVCC_HOST_COMPILER}")
endif(CUDA_NVCC_HOST_COMPILER)
从:

所以,要解决您的问题,只需

set(CUDA_PROPAGATE_HOST_FLAGS FALSE)

在CMake脚本的开始处。

您有什么CUDA版本?自CUDA 7以来,Afaik C++11一直受支持。请检查此@Shadow nvcc:NVIDIA(R)CUDA编译器驱动程序版权(C)2005-2013年NVIDIA Corporation基于Wed_Jul_17_18:36:13_PDT_2013 Cuda编译工具,5.5版,V5.5版。0@Michael2013年是4年前。这是软件开发的一个完整时代。Nvidia当时不支持C++11。甚至GCC也不完全支持它。你应该升级。@multipleMonmals你的答案很有用,但没有解决这个问题我确实使用了
target\u compile\u选项(PUBLIC-std=c++11)
set(CUDA_PROPAGATE_HOST_FLAGS FALSE)