我如何替换 makefile 中的“/home/name/.../”,以便我可以将我的程序交给其他人?

How do i replace "/home/name/.../" in makefiles, so i can hand over my programm to other people?

我制作了一个 C/C++ makefile 项目,现在需要与我的项目组中的其他人共享。 可以通过U盘或邮寄等方式递交,我无所谓。

我的问题是,我在我的 makefile ("/home/name/.../project/.../src/etc.") 中使用了完全写入的路径来连接库和 src 文件在我的项目中。

现在我想知道,是否可以将完全写入的路径更改为其他内容,这样其他人就不必更改那些完全写入的路径。

如果您对我可以做什么有任何建议,那将非常有帮助。

您可以使用 ${HOME} 等环境变量来替换 /home/name 和任何与环境相关的内容。

至于完整编写路径的其余部分,要么使用相同 Makefile 的人必须具有某种相似的体系结构,要么您必须将参数传递给您的规则。

例如,您可以执行 make ARGS="path" all,其中路径是自定义路径,然后使用 ${ARGS},这将等同于 all: 规则中的 path生成文件。

但正如 tripleee 所说,最佳做法是使用相对路径。

在这种情况下,可以在项目的根目录下下载 Makefile,并在 src 目录中创建源文件,如下所示:

.
├── Makefile
└── src
    ├── file1.c
    └── file2.c

使用相对路径编译 src 中所有 .c 文件的(非常基本的)Makefile 将是:

CC=gcc
SRC=./src/*.c

all:
    ${CC} ${SRC}