【问题标题】:Makefile with absolute paths and Git具有绝对路径和 Git 的 Makefile
【发布时间】:2017-06-01 02:44:25
【问题描述】:

我有一个带有自定义 Makefile 的 C 项目。它的第一行是项目目录的路径。因此,与该项目一起工作的每台机器都必须将此路径更改为其工作目录,这自然会导致新的不受欢迎的提交,尤其是在您推送数据时。此外,还有几个外部 SDK 也需要路径。

你的解决方案是什么?

【问题讨论】:

  • 为什么不修改你的 Makefile 使用相对路径来避免根据工作目录改变?
  • @gzh 它们在工作目录中是相对的。另外我刚刚发现 make 有 '§(CURDIR)' 命令。但是必须连接到项目的外部 sdk 呢?
  • 您可以使用git submodulegit-repo在不同的存储库中管理您的源代码和外部SDK,并使用您指定的目录布局检出它们。
  • @gzh 是的,我知道这一点。阻止我的主要原因是有人已经拥有它并且不想下载两次。
  • @gzh 但这实际上是我想到的一种方式。

标签: git makefile project development-environment project-structure


【解决方案1】:

首先,您可以通过命令行覆盖通过简单的= 分配的变量:

$ cat Makefile
AAA = 1
all:
    echo $(AAA)
$ make
1
$ make AAA=2
2

其次,您可以使用?=,在这种情况下,Linux 环境也会覆盖 Makefile 的变量:

$ cat Makefile
AAA ?= 1
all:
    echo $(AAA)
$ export AAA=3
$ make
3

然后您可以将变量添加到您的 .bashrc 并忘记它。

【讨论】:

    【解决方案2】:

    有条件地包含一个设置本地路径的未跟踪 makefile(例如-include config.mak)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2011-08-31
      • 2011-03-19
      • 2017-04-20
      • 2011-03-21
      • 2010-09-15
      • 2020-09-24
      相关资源
      最近更新 更多