如何使用 CMake 抑制 CUDA 的编译器警告?

问题描述 投票:0回答:1

我有一个同时启用

CXX
CUDA
的项目:

project(my_proj LANGUAGES CXX CUDA)

我正在链接一个第三方库,它使用另一个第三方库(

Eigen
)作为依赖项。我正在构建并打开警告。当构建
*.cpp
文件时,我没有警告,但是当构建
*.cu
时,会在
Eigen
内发出警告。我尝试遵循这里的建议 - CMake: target_link_libraries include as SYSTEM to抑制编译器警告 - 但它并不能解决问题。

cmake cuda
1个回答
0
投票

对于 CMake 3.8 及更高版本,CUDA 是一流的语言(即使支持还很粗糙)。因此,使 CUDA 编译器表现不同的方法本质上与 C 或 C++ 等编译器的方法相同:

target_compile_options(my_cudaish_target some_flag another_flag etc);

假设您的 CUDA 编译器是 NVCC,相关标志可能是

-w
来禁用所有警告,或者
wnofoo
来禁用名为
foo
的警告。

现在,如果您正在使用其 own

CMakeLists.txt
构建 Eigen,那么您可以对其进行修改,或者报告 Eigen 的错误以让其开发人员解决该问题。


另请参阅以下 CMake 文档页面:

© www.soinside.com 2019 - 2024. All rights reserved.