cmake:如何制作一个脚本来复制我的程序附带的数据文件

2024-04-03

我正在尝试使用 cmake 自动化我的构建过程。 目前只有一个问题:

在cmake的哲学(如果有的话)中,最好的地方在哪里 放置数据文件的复制。

我有一个图书馆和一些例子。例子需要数据。

我目前执行以下操作:

我在每个示例的 CMakeLists.txt 中使用自定义命令将所有数据复制到CMAKE_CURRENT_BINARY_DIR在构建后步骤中。 我在调试工作流程中使用它,因此尚未执行安装目标。

这工作得很好,但有一些缺点:

  1. 每次构建项目时都会进行复制。对于 VS 2005,即使不是新建的,有时也会发生这种情况。由于数据文件夹很大,复制需要时间,而且有点烦人。
  2. 我确信这是一种非常笨拙的方法。

我想将这些目录复制到可执行路径,因此我不需要提示如何设置调试工作目录

复制这些目录的最佳时间是在 cmake 配置/生成时,至少我是这么认为的。 我应该这样做吗?我该怎么做?


正如最近看到的这个问题 https://stackoverflow.com/questions/1514747, 您可以使用配置文件 http://www.cmake.org/cmake/help/cmake2.6docs.html#command%3Aconfigure%5Ffile将文件复制到构建目录:

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/input.txt
    ${CMAKE_CURRENT_BINARY_DIR}/output.txt COPYONLY)

它在构建时执行一次,并且仅在需要时执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmake:如何制作一个脚本来复制我的程序附带的数据文件 的相关文章

随机推荐

  • controller.js.coffee 中的函数

    我在使用 CoffeeScript 创建函数时遇到一些问题 我想我错过了一些东西 对于我的用户控制器 我想为注册表单创建客户端验证 我认为我错过了这一切如何运作的一些基本内容 咖啡脚本 资产 users js coffee validate
  • 使 Elixir 应用程序在源代码更改时重新编译并重新加载

    如何在每次修改源代码时自动重新编译并重新加载我的 iex mix 应用程序 如果 iex mix 组合无法做到这一点 那么最简单的替代方案是什么 我已经检查了phoenix的重新加载方法 对于我的小型测试项目来说 它似乎并不容易实现 我也知
  • Excel 在复制时弄乱了我的公式,我怎样才能阻止它更改一部分而不更改另一部分?

    所以我正在使用一个正在更新的旧数据库系统 以前它运行过许多不同的文件 一个包含电子邮件 一个包含数字 你明白了 不管怎样 在尝试编译成一个文件时 我遇到了一个障碍 有些人没有电话号码或电子邮件等 这意味着我不能只是复制旧数据 PersonI
  • 在循环中创建多维数组

    我正在尝试在循环中创建这样的数组 dataPoints array array x gt 4321 y gt 2364 array x gt 3452 y gt 4566 array x gt 1245 y gt 3452 array x
  • 图像地图的绘图点

    我想向网页上的图像地图添加自动区域突出显示 我发现 mapper js 库对于实现此目标非常有用 但是围绕区域地图创建 x y 图非常耗时 有没有一种快速的方法来创建不规则多边形的边界坐标 例如可以在区域地图上找到的坐标 EDIT必须有办法
  • 无法获取socket.io.js

    我实际上正在做一个小项目 我应该用node js mongoDB socket io 和canvas 重新创建一个绘图多人游戏 抽屉工作得很好 服务器似乎也工作得很好 我的注册 登录 会话和数据库已启动并正常工作 唯一的问题是 socket
  • API 的错误代码模式

    API错误代码响应模式有哪些好的选择 而不是使用不同的代码来指示不同类型的错误 100001 username not provided 100002 password not provided 100003 password too sh
  • 包装| OpenSCManager 失败 - 访问被拒绝。 (0x5)

    我尝试在 Windows 8 1 pro 64 位 上安装 Archiva 但不断收到如下相同的错误 包装 OpenSCManager 失败 访问被拒绝 0x5 我仅以管理员身份登录 但我仍然遇到同样的错误 对于同一问题 我看到的大多数答案
  • ASP.NET MVC 强类型部分视图,给出无法加载类型错误

    我正在尝试使用使用 Html RenderPartial 呈现的 MVC 视图用户控件 创建强类型视图 我的 ascx 文件的顶部如下所示 目前此页面上没有其他内容 当我执行应用程序并加载呈现此控件的页面时 出现以下错误 Could not
  • Java 中的异常。我们为什么要拥有多个可检查类和一个不可检查类呢?

    我是 Java 编程的新手 我刚刚开始学习异常 在 API 文档中发现 Exception 类的所有子类都有两个构造函数 一个默认构造函数 另一个带有 String 参数 所有这些类之间的区别在于其中一些是可检查的而另一些是不可检查的 Un
  • 复制每日期间的最后一个值

    我有一个多日 XTS 对象 并且我正在尝试创建一个指标 该指标一旦为真 则在当天剩余时间内保持为真 我正在尝试的方法 但它不起作用 是将 na locf 函数与 apply daily 结合起来 output lt apply daily
  • 如何向新程序员解释松散耦合和信息隐藏? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • IOS7(仅限)stdlibc++ 链接问题

    我需要帮助 我有一个使用 std string 之类的 stdc 的框架 现在 当我为 IOS 7 创建新应用程序时 由于 stdc lib 的问题 链接此框架时出现问题 架构armv7的未定义符号 std basic string std
  • 从数据数组填充实体,无需表单/请求

    只是想知道是否可以只使用 symfony 表单处理的某些部分 例如 当通过创建 CRUD 操作时generate doctrine crud我在控制器 用于处理创建用户 POST 请求 中得到如下所示的内容 entity new User
  • 界面生成器中的手势识别器使我的应用程序崩溃

    我正在尝试使用 Interface Builder 在我的应用程序中制作手势识别器 我将手势拖放到视图上 这是一个UIView其中包含UILabel UIImage and UITextView 全部在 Interface Builder
  • Spring MVC 中的映射 /(根 URL)

    我认为这应该是很容易的事情 但到目前为止我还没有能够让它发挥作用 我想要做的是将我的根路径映射到 Spring MVC 控制器 与正常的Servlet 我只需添加一个映射 in my web xml 并且它会很好地接收它 但对于 Sprin
  • 如何在不解压缩的情况下检查 Unix .tar.gz 文件是否是有效文件?

    我已经找到问题了如何确定数据是否是有效的没有文件的tar文件 https stackoverflow com questions 1788236 how to determine if data is valid tar file 但我想知
  • GNUPLOT 每个直方图条具有不同的颜色

    我想可视化位图文件的不同颜色的数量 我的数据表如下所示 1 163073164 4 185122087 3 255242000 8 255255255 3 000162232 1 181230029 1 127127127 1 136000
  • jQuery 在子 div 中获取值

    我需要获取子 div 的文本值 div div A div div B div div C div div 我正在尝试获取值 B 我目前正在尝试此操作 但它不起作用 var text val first next second child
  • cmake:如何制作一个脚本来复制我的程序附带的数据文件

    我正在尝试使用 cmake 自动化我的构建过程 目前只有一个问题 在cmake的哲学 如果有的话 中 最好的地方在哪里 放置数据文件的复制 我有一个图书馆和一些例子 例子需要数据 我目前执行以下操作 我在每个示例的 CMakeLists t