PATH
에서 찾을 수있는 설치된 프로그램의 디렉토리를 알아 내야하는 Makefile을 작성하고 있습니다. 즉, PATH
에 있다고 가정합니다.Makefile에서 하위 문자열 발생 후 문자열 자르기
예 : 이진수가 /opt/Xilinx/12.1/ISE_DS/ISE/bin/lin64/xst
인 경우 찾고자하는 경로는 /opt/Xilinx/12.1/ISE_DS/ISE
입니다. 이 프로그램은 또한 예를 들어 /home/markus/Xilinx/10.1/ISE/bin/lin64/xst
으로 찾을 수 있습니다. 자일링스는 이후 버전에서만 경로의 일부로 ISE_DS
을 포함시켰다.
사실상 /bin/lin64/xst
부분 문자열은 설치에 따라 /bin/lin/xst
일 수 있기 때문에 간단히 삭제할 수 없습니다.
Makefile은 XILINX_PATH = $(shell which xst)
과 같은 작업을 수행 할 수 있으며 위의 예에 따라이 문자열을 처리 할 수 있지만이 작업은 깨끗한 방법으로 수행 할 수 없습니다.
XILINX_PATH_1 = $(shell which xst)
XILINX_PATH_2 = $(subst /bin/lin64/xst,,${XILINX_PATH_1})
XILINX_PATH = $(subst /bin/lin/xst,,${XILINX_PATH_2})
더 나은 솔루션이 있습니까 :
내가 가지고 올 수있는 최선이 무엇입니까?
굉장! 고맙습니다. 이것은 훨씬 나아 보인다. –