Правильное решение этой проблемы (при условии, что вы не хотите, чтобы sp
запускался из-за пределов вашего make-файла), состоит в том, чтобы вызывать вашу программу, используя полный путь вместо ./
(который является относительным и может измениться).во время нескольких каталогов делает).В вашем make-файле сделайте что-то вроде:
SP_DIR := $(shell pwd)/spdir
rule : somedependency
$(SP_DIR)/sp
Где $(shell pwd)
развернется в каталог, из которого запускается make-файл.Если ваш каталог sp находится в родительском каталоге этого, можно также использовать ..
в пути: например.
SP_DIR := $(shell pwd)/../../spdir
Если вы хотите запустить sp из-за пределов make-файла,затем вам нужно либо скопировать sp в каталог, указанный в вашей переменной PATH (для просмотра сделайте echo $PATH
), либо изменить ваш .bashrc или эквивалентный файл, чтобы PATH включал каталог, в который встроен sp.
John