gpt4 book ai didi

cmake - 使用 CMake 将文件从源目录复制到二进制目录

转载 作者:行者123 更新时间:2023-12-03 05:07:59 25 4
gpt4 key购买 nike

我正在尝试在 CLion 上创建一个简单的项目。它使用 CMake 生成 Makefile 来构建项目(或某种项目)

我需要的只是每次运行代码时将一些非项目文件(某种资源文件)传输到二进制目录。

该文件包含测试数据,应用程序打开它来读取它们。我尝试了几种方法:

  • 通过文件(COPY ...

    file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/input.txt
    DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/input.txt

    看起来不错,但它只能工作一次,并且在下次运行后不会重新复制文件。

  • 通过add_custom_command

    • 输出版本

      add_custom_command(
      OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/input.txt
      COMMAND ${CMAKE_COMMAND} -E copy
      ${CMAKE_CURRENT_SOURCE_DIR}/input.txt
      ${CMAKE_CURRENT_BINARY_DIR}/input.txt)
    • 目标版本

      add_custom_target(foo)
      add_custom_command(
      TARGET foo
      COMMAND ${CMAKE_COMMAND} copy
      ${CMAKE_CURRENT_BINARY_DIR}/test/input.txt
      ${CMAKE_SOURCE_DIR})

    但是没有一个有效。

我做错了什么?

最佳答案

您可以考虑使用configure_file使用COPYONLY选项:

configure_file(<input> <output> COPYONLY)

file(COPY ...) 不同,它在输入和输出之间创建文件级依赖关系,即:

If the input file is modified the build system will re-run CMake to re-configure the file and generate the build system again.

关于cmake - 使用 CMake 将文件从源目录复制到二进制目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34799916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com