我的项目使用 cuda 内核作为一个小模块,需要 nvcc 进行编译。在编译期间,cmake 还将用于 gcc 的相同链接器和编译器标志传递给 nvcc。在我的特殊情况下,我收到以下错误。
nvcc fatal : Unknown option 'Wl,--no-as-needed'
按照该线程中接受的答案,我设法删除了需要 nvcc 的目标的编译器标志,如下所示。
get_target_property(_target_cxx_flags target_that_needs_nvcc COMPILE_OPTIONS)
list(REMOVE_ITEM _target_cxx_flags "-fcolor-diagnostics")
使用它,我避免了由于错误的编译器标志而导致的错误,如下所示:
nvcc fatal : Unknown option 'fdiagnostics-color'
但是我不能使用相同的过程来删除链接器标志,因为get_target_property
只获取编译器标志而不是链接器标志。
我正在寻找一种解决方案,仅针对一个目标编译禁用链接器标志。
预期的 cmake 最低版本是VERSION 3.0