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

标签 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 target 时,我看到类似的东西

Re-run cmake file: Makefile older than: Caffe/src/caffe/CMakeFiles/cuda_compile.dir/layers/cuda_compile_generated_cudnn_relu_layer.cu.o.depend

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

最佳答案

答案已在以下链接中找到:

简介:一切正常。这是 FindCUDA.cmake 的正常行为。

在第一次 make run 之后,.depend 文件将被包含到 CMake 项目中,第二次 make run 将重新编译而不重新生成 .depend 文件。 第二次make后一切正常,一个模块的改动不会导致整个工程重新编译。

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

关于c++ - 由于 cuda 生成的文件,Cmake 重新运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42761301/

相关文章:

c++ - 在 C++ 中读取 C 风格的字符串时出现错误

c++ - CUDA 内存(类型),用于内核调用期间的仅设备计算(计算 1.1 或 1.2)

c++ - 使用 CUDA 减少矩阵列

CUDA合作组: Linking error

macos - 如何使用 Qt 4.7 SDK 在 Mac 上设置 Qt Creator 以使用 CMake?

c++ - 使用 CMake C++17 项目设置 Travis CI

c++ - 对于可重定位的多平台安装,理想的 cmake 安装目录结构是什么?

c++ - C++ 中的 FileSystemWatcher 类

c++ - 使用 std::vector 和内存释放

c++ - 在离开模式下唤醒 Windows