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

o75abkj4  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(95)

我有一个同时启用了CXXCUDA的项目:

project(my_proj LANGUAGES CXX CUDA)

字符串
我正在链接一个第三方库,它使用另一个第三方库(Eigen)作为依赖项。我在构建时打开了警告。当构建*.cpp文件时,我没有警告,但当构建*.cu时,Eigen内部发出警告。我试图遵循这里的建议-CMake: target_link_libraries include as SYSTEM to suppress compiler warnings-但它不能解决问题。

koaltpgm

koaltpgm1#

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

target_compile_options(my_cudaish_target some_flag another_flag etc);

字符串
假设您的CUDA编译器是NVCC,相关标志可能是-w以禁用所有警告,或-Wnofoo以禁用名为foo的警告。
现在,如果您正在使用自己的CMakeLists.txt构建Eigen,那么您可以修改它,或者报告Eigen的bug,让它的开发人员解决这个问题。
另请参阅以下CMake文档页面:

  • target_compiler_options
  • CMAKE_<LANG>_FLAGS

相关问题