Как мне заменить "/home/name/.../" в make-файлах, чтобы я мог передать свою программу другим людям? - PullRequest
0 голосов
/ 28 октября 2019

Я создал проект make-файла на C / C ++, которым теперь нужно поделиться с другими людьми из моей проектной группы. Это может быть передано через USB или по почте и т. Д. Это не имеет значения для меня.

Моя проблема в том, что я использовал полностью записанные пути в моем make-файле ("/home/name/.../project/... / src / etc. ") для подключения библиотек и src-файлов в моем проекте.

Теперь я хочу знать, возможно ли изменить полностью записанный путь на что-то другое, так что другие люди делают этоне нужно менять эти полностью написанные пути.

Было бы очень полезно, если у вас есть какие-либо предложения о том, что я могу сделать.

1 Ответ

0 голосов
/ 28 октября 2019

Вы можете использовать переменные окружения, такие как ${HOME}, для замены /home/name и всего, что связано с окружением.

Что касается остальной части полностью записанного пути, то люди, использующие тот же Makefile, будут иметьиметь схожую архитектуру, или вам придется передавать параметры в ваши правила.

Например, вы можете выполнить make ARGS="path" all, где путь - это пользовательский путь, а затем использовать ${ARGS}, который будет эквивалентенpath в вашем all: правиле в Makefile.

Но, как сказал tripleee , лучше всего использовать относительные пути.

В этом случаеMakefile может быть загружен в корневой каталог проекта, а исходные файлы созданы в каталоге src, например:

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

A (очень простой) Makefile для компиляции всех файлов .c в src с использованием относительных путей будет:

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

all:
    ${CC} ${SRC}
...