【问题标题】:How can I copy an autoconf build to another directory for further testing?如何将 autoconf 构建复制到另一个目录以进行进一步测试?
【发布时间】:2021-05-02 20:45:45
【问题描述】:

如果我使用 autoconf 构建包,如何将 source/build* 目录中的所有内容复制到另一个位置以进行进一步测试等?

为了进一步详细说明,我想对我的一些工作进行简单备份,方法是在复制目录之前在一个目录中构建 + 测试所有内容,对代码应用一些转换(不需要重新编译),然后重新运行测试。我遇到的问题是 autoconf 似乎希望我在新复制的目录中运行autoreconf,这需要我重建东西。如果可能的话,这是我想避免的。

例如,当我尝试使用新复制的 m4 运行测试时(甚至没有应用任何转换),我得到以下信息:

m4-1.4.18/build-aux/missing: line 81: aclocal-1.15: command not found
WARNING: 'aclocal-1.15' is missing on your system.
You should only need it if you modified 'acinclude.m4' or
'configure.ac' or m4 files included by 'configure.ac'.
The 'aclocal' program is part of the GNU Automake package:
<http://www.gnu.org/software/automake>
It also requires GNU Autoconf, GNU m4 and Perl in order to run:
<http://www.gnu.org/software/autoconf>
<http://www.gnu.org/software/m4/>
<http://www.perl.org/>

编辑:

正如@Bodo所指出的,我应该说我使用的复制方法是cp -r


* 我在源目录中构建东西,没有单独的构建目录。

【问题讨论】:

  • 如何将构建复制到另一个目录?我想通过复制您以make 想要重建目标的方式修改了时间戳。您可以使用 Git 之类的工具来创建源代码的备份。或者您可以使用tar 复制带有时间戳的文件。
  • 我只使用标准的cp -r。嗯,好的,我会查看tar 以复制时间戳!谢谢。我可以使用 Git,而且我最终可能会使用,但是对于我现在正在做的事情来说,它似乎有点笨拙。
  • 请在问题中添加说明(关于cp -r)。
  • @Bodo 使用tar 工作并解决了我的问题。谢谢!

标签: linux build compilation autoconf


【解决方案1】:

通过使用cp -r 复制数据,您可以创建修改时间设置为复制时间的新文件。根据复制文件的顺序,这将导致make(或您的构建工具)重新构建目标。

你可以使用类似的东西

cd sourcedir
tar cvf ../sorcedit.tar .
cd ../targetdir
tar xvf ../sourcedir.tar

复制文件,同时保留其原始时间戳。

或者您可以使用 Git(或任何其他分布式版本控制系统)之类的工具来保存您工作的每一步。然后您可以直接在 source/build 目录中运行测试,然后丢弃所有文件(当然 Git 存储库除外)并使用 Git 重新创建源文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-25
    • 2014-07-18
    • 1970-01-01
    • 2022-01-21
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多