c++ - 如果已经设置,则在 CMake 中更改标志值

标签 c++ cmake cuda

2013 年以后,CUDA 项目将不会在 Visual Studio 中使用 -m32(32 位)选项构建。因此,我尝试将 -m64 标志添加到 NVCcflags中,如下所示:

find_package(CUDA)
...
set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -m64")
...

但这会导致错误

nvcc fatal   : redefinition of argument 'machine' // machine refers to -m

在详细构建 NVCC 时果然使用了 -m32 和 -m64 标志,这导致了这个错误。如何修改/删除 CUDA_NVCC_FLAGS 变量中现有的 -m32 标志?

最佳答案

你可以试试这样的:

string(REPLACE -m32 -m64 CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}")

string(REPLACE)

关于c++ - 如果已经设置,则在 CMake 中更改标志值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47570942/

相关文章:

c++ - 带有 pthreads 和 mutexes 的 OpenCV

c++ - 子目录中带有 protobuf 文件的 CMake

cuda - 用于计算邻居列表的最佳 GPU 算法

OpenCV GPU ( CUDA ) 模板匹配和 FFT 实现

c++ - 如何初始化基类构造函数的 vector ?

c++ - 为什么我们不能在类里面使用 "this"?

c++ - 我应该如何在 UDP 中的 Boost Asio 中找到我从哪个客户端接收?

android - 关于移植VXL到android的错误

c++ - 使用 minGW 编译基于 CMake 的项目

c++ - 如何为点云赋予纹理?