Makefile..sed를 사용할 때 오류가 발생했습니다.

Makefile..sed를 사용할 때 오류가 발생했습니다.

앱이 다음을 사용하여 구성하려고 합니다.

sudo make configure
(cd /opt/ioapi-3.2/ioapi   ;  sed -e 's|IOAPI_BASE|/opt/ioapi-3.2|' -e 's|LIBINSTALL||' -e 's|BININSTALL||' -e 's|IOAPI_DEFS||' -e 's|NCFLIBS|-L/opt/netcdf/lib -lnetcdff -L/opt/netcdf/lib -lnetcdf|' -e 's|MAKEINCLUDE|include /opt/ioapi-3.2/ioapi/Makeinclude|' -e 's|PVMINCLUDE|include  |' < Makefile..sed > Makefile )
/bin/sh: Makefile..sed: No such file or directory
make: *** [Makefile:211: configure] Error 1

명령의 마지막 부분이 수행해야 하는 작업과 오류가 생성되는 이유를 이해할 수 없습니다.

출력은 다음과 make -n configure같습니다.

(cd /home/centos/ioapi-3.2/ioapi   ;  sed -e 's|IOAPI_BASE|/home/centos/ioapi-3.2|' -e 's|LIBINSTALL||' -e 's|BININSTALL||' -e 's|IOAPI_DEFS||' -e 's|NCFLIBS|-lnetcdff -lnetcdf|' -e 's|MAKEINCLUDE|include /home/centos/ioapi-3.2/ioapi/Makeinclude|' -e 's|PVMINCLUDE|include  |' < Makefile..sed > Makefile )
(cd /home/centos/ioapi-3.2/m3tools ;  sed -e 's|IOAPI_BASE|/home/centos/ioapi-3.2|' -e 's|LIBINSTALL||' -e 's|BININSTALL||' -e 's|IOAPI_DEFS||' -e 's|NCFLIBS|-lnetcdff -lnetcdf|' -e 's|MAKEINCLUDE|include /home/centos/ioapi-3.2/ioapi/Makeinclude|' -e 's|PVMINCLUDE|include  |' < Makefile..sed > Makefile )

답변1

Makefile.template프로젝트 파일 ioapic-3.2을 보면GitHub에서sed, 보고 있는 명령은 변수를 make사용한 결과임이 분명합니다 SEDCMD.

SEDCMD = \
-e 's|IOAPI_BASE|$(BASEDIR)|' \
-e 's|LIBINSTALL|$(LIBINST)|' \
-e 's|BININSTALL|$(BININST)|' \
-e 's|IOAPI_DEFS|$(IOAPIDEFS)|' \
-e 's|NCFLIBS|$(NCFLIBS)|' \
-e 's|MAKEINCLUDE|include $(IODIR)/Makeinclude|' \
-e 's|PVMINCLUDE|include  $(PVMINCL)|'

이렇게:

configure: ${IODIR}/Makefile ${TOOLDIR}/Makefile
    (cd $(IODIR)   ;  sed $(SEDCMD) < Makefile.$(CPLMODE).sed > Makefile )
    (cd $(TOOLDIR) ;  sed $(SEDCMD) < Makefile.$(CPLMODE).sed > Makefile )

보시다시피, 이라는 파일을 읽으려고 시도합니다 Makefile.$(CPLMODE).sed. 변수 CPLMODE가 여러 번 언급되었습니다.댓글에서Makefile에 있지만 기본값으로 설정하지 마십시오.

nocpl이 변수의 유효한 값은 , cpl또는 인 것 같습니다 pncf. 저장소의 파일 에는 Makefile을 사용자 정의하라고 나와 있는데, 여기 에는 프로젝트의 최상위 디렉토리에 호출된 README.txt복사본을 만든 다음 이를 수정하는 것이 포함된다고 가정해야 합니다 .Makefile.templateMakefile

아직 필요한 모든 수정 작업을 수행하지 않은 것 같습니다.

관련 정보