我如何替换 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}
我制作了一个 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}