Согласно документации CMake, мне просто нужно написать
project(${PROJECT_NAME} LANGUAGES CUDA CXX)
, когда я хотел бы объединить CUDA-файлы и нативные C ++-файлы в одном проекте. Тогда мне больше не нужно звонить cuda_add_executable()
, а скорее add_executable
, и CMake должен сам все выяснить. Это прекрасно работает, если я не хочу указывать стандарт для C ++ - кода (используя set(CMAKE_CXX_STANDARD 17)
). Затем я получаю сообщение об ошибке
Target requires the language dialect "CUDA17" (with compiler extensions), but CMake does not know the compile flags to use to enable it
Есть ли альтернативное решение или мне лучше вернуться к find_package(CUDA)
и cuda_add_executable
?