Linux上的CMake enable_language(CUDA)不会自动包含CUDA标头:如何解决?

时间:2018-08-10 14:38:25

标签: c++ cmake cuda

我正在尝试切换C ++ / CUDA项目以使用新的enable_language(CUDA)CMake语法。在带有MSVC的Windows上,一切正常,但是在Linux / GCC上,当我尝试编译项目时,找不到CUDA标头。我已简化为以下简单示例。

main.cpp:

#include <cstdlib>
#include "cuda.h" //on Linux, yields "fatal error: cuda.h: No such file or directory" compile-time error

int main(int, char* []) {    
    return EXIT_SUCCESS;
}

CMakeLists.txt:

cmake_minimum_required(VERSION 3.8)
project(Test)

set(CMAKE_CXX_STANDARD 11)

enable_language(CUDA)

set(EXEC_FILES main.cpp)

add_executable(test_exec ${EXEC_FILES})

我已经搜索过,但是examples到目前为止,我可以找到的“ enable_language(CUDA)”似乎对目标没有任何特殊作用,也不发出include_directories / target_include_directories命令。

旁边:

  • 在Windows上,我正在使用CUDA 9.2,MSVC 2017和CMake 3.12.1;
  • 在Linux上,我正在使用CUDA 9.2,GCC 5.4.0和CMake 3.12.0。

如何正确修改CMake以确保所有平台上都使用CUDA标头目录?

0 个答案:

没有答案