由于cuda生成的文件,Cmake重新运行

时间:2017-03-13 10:25:02

标签: c++ cuda cmake

我有以下情况:我有一个CMake文件,它应该编译几个二进制目标。 我的项目中也有CUDA

find_package(CUDA REQUIRED)
include_directories(${CUDA_INCLUDE_DIRS})
add_libraries_to_linker

当我运行cmake时,一切都很好。 第一个make target a命令也可以顺利运行,但是第二个make命令检测到 cuda生成的文件早于Makefile ,并且重新生成了导致项目重建的cmake。 我如何禁用cmake再生? 我错过了什么吗?

修改 我认为应该编辑我的问题。

我有一个Caffe框架,从源代码和使用它的二进制文件构建。 当我启用GPU时 - 由于编译make target a,Cuda会生成它的文件,因此当我运行另一个make目标时,我会看到像

这样的内容
  

重新运行cmake文件:Makefile早于:   CAFFE / SRC / CAFFE / CMakeFiles / cuda_compile.dir /层/ cuda_compile_generated_cudnn_relu_layer.cu.o.depend

当GPU关闭时,一切正常 - 任何make命令都不会导致重新生成

1 个答案:

答案 0 :(得分:1)

通过以下链接找到答案:

简介:一切都很正常。这是pan:~$ g++ example.cpp -Wall -o example.elf pan:~$ ./example.elf 4 Complex ctor: 0, 0 Complex ctor: 0, 0 Complex ctor: 0, 0 Complex ctor: 0, 0 pan:~$ 的正常行为。

首先使运行FindCUDA.cmake文件将包含在CMake项目中,第二个make运行将重新编译而不重新生成.depend个文件。 在第二次之后,一切都会好起来的,一个模块中的更改不会导致整个项目中的重新编译。

https://cmake.org/pipermail/cmake/2011-January/042173.html