我有一个同时启用
CXX
和 CUDA
的项目:
project(my_proj LANGUAGES CXX CUDA)
我正在链接一个第三方库,它使用另一个第三方库(
Eigen
)作为依赖项。我正在构建并打开警告。当构建 *.cpp
文件时,我没有警告,但是当构建 *.cu
时,会在 Eigen
内发出警告。我尝试遵循这里的建议 - CMake: target_link_libraries include as SYSTEM to抑制编译器警告 - 但它并不能解决问题。
对于 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 文档页面: