Получить каталог MakeFile
Я распространяю свои файлы cpp вместе с make файлом. Теперь make файл находится в том же каталоге, что и файл cpp.
Какова переменная (если она есть) в make файле, которая позволяет мне получить текущий каталог, в котором находится файл makefile? Таким образом, я могу использовать эту переменную для указания моего пути cpp для компиляции.
Мой make файл выглядит следующим образом:
all:
g++ ($makeFileDir)/main.cpp ($makeFileDir)/hello.cpp ($makeFileDir)/factorial.cpp -o ($makeFileDir)/hello.exe
Изменить: я запускаю свои make файлы в Windows
Ответы
Ответ 1
Помню, у меня была такая же проблема. Насколько я помню, это невозможно.
Лучшая ставка, которую вы можете получить, это передать ее как переменную. Это как кроссплатформенная платформа, так и гарантированная работа, поскольку вы знаете, как сделать make файл во время вызова (иначе вы не можете его вызывать).
В качестве альтернативы вы можете сделать очень грязный трюк, что означает, что вы пытаетесь объединить свой текущий путь (вы можете получить с помощью $(CURDIR) в gnu make) с помощью пути вызова make файла (что может быть сложно, и зависит от вашего make)
Ответ 2
Для использования "cygwin" и "linux" я разрешаю это, вызывая pwd непосредственно из правила в make файле:
do.%: %.cpp
echo "Running command in " `pwd`
somecommand $^
Ответ 3
вы можете использовать $(srcdir)
затем./configure --srcdir = "/your/path/to/the/source/directory"