OS X에서 힘내를 빌드하려고합니다. Git은 libidn2에 의존합니다. libidn2 2.0.0은 실패Makefile에서 'ar'이 어디에서 호출되는지 확인하는 방법은 무엇입니까?
이make all-am
make[3]: Entering directory '/Users/jwalton/Build-Scripts/libidn2-2.0.0/lib'
CC idna.lo
CC lookup.lo
CC decode.lo
CC register.lo
CC bidi.lo
CC version.lo
CC error.lo
CC punycode.lo
CC free.lo
CC data.lo
CC tr46map.lo
CC tables.lo
CC context.lo
CCLD libidn2.la
warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: no name list
warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: no name list
copying selected object files to avoid basename conflicts...
ar: temporary file: No such file or directory
Makefile:1027: recipe for target 'libidn2.la' failed
make[3]: *** [libidn2.la] Error 1
make[3]: Leaving directory '/Users/jwalton/Build-Scripts/libidn2-2.0.0/lib'
Makefile:955: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/Users/jwalton/Build-Scripts/libidn2-2.0.0/lib'
Makefile:1065: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/Users/jwalton/Build-Scripts/libidn2-2.0.0'
Makefile:974: recipe for target 'all' failed
make: *** [all] Error 2
libidn2를 구축하는 내 조리법 모든 메이크를 발견하고 AR
및 ARFLAGS
해결
if [[ "$IS_DARWIN" -ne "0" ]]; then
for mfile in $(find "$PWD" -name 'Makefile'); do
echo "Fixing Makefile $mfile"
sed -i "" 's|AR = ar|AR = /usr/bin/libtool|g' "$mfile"
sed -i "" 's|ARFLAGS = cr|ARFLAGS = -static -o|g' "$mfile"
done
fi
내가 확인했습니다 그것을 수정하는 모든 메이크를 :
$ find $PWD -name Makefile -exec grep 'AR =' {} \; | egrep -iv 'amtar|char'
AR = /usr/bin/libtool
ac_ct_AR = /usr/bin/libtool
AR = /usr/bin/libtool
ac_ct_AR = /usr/bin/libtool
AR = /usr/bin/libtool
ac_ct_AR = /usr/bin/libtool
AR = /usr/bin/libtool
ac_ct_AR = /usr/bin/libtool
AR = /usr/bin/libtool
ac_ct_AR = /usr/bin/libtool
AR = /usr/bin/libtool
ac_ct_AR = /usr/bin/libtool
AR = /usr/bin/libtool
ac_ct_AR = /usr/bin/libtool
AR = /usr/bin/libtool
ac_ct_AR = /usr/bin/libtool
AR = /usr/bin/libtool
ac_ct_AR = /usr/bin/libtool
AR="/usr/bin/libtool" ARFLAGS="-static -o" ./configure
과 make AR="/usr/bin/libtool" ARFLAGS="-static -o"
도 시도했지만 선택 사항은 적용되지 않습니다. 추가로 실패한 빌드가 생성됩니다.
Makefile 디버깅 지원은 매우 진절머리하기 때문에 진행 방법을 모르겠습니다. make -d
은 파일 이름과 줄 번호를 제공하는 것과 같은 가장 단순한 작업조차도 실패합니다. remake -d
은 도움이되지 않는 동일한 결과를 산출합니다. 다른 사람이 작성한 대규모 프로젝트는 상황을 악화시킵니다.
libidn2.la: $(libidn2_la_OBJECTS) $(libidn2_la_DEPENDENCIES) $(EXTRA_libidn2_la\
_DEPENDENCIES)
$(AM_V_CCLD)$(libidn2_la_LINK) -rpath $(libdir) $(libidn2_la_OBJECTS) $\
(libidn2_la_LIBADD) $(LIBS)
은 어떻게 찾을 수 ar
는 Makefiles
의 컬렉션에 호출되고 :
$ make -d
...
Putting child 0x7f9bf0c45cf0 (libidn2.la) PID 75531 on the chain.
Live child 0x7f9bf0c45cf0 (libidn2.la) PID 75531
CCLD libidn2.la
warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: no name list
warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: no name list
copying selected object files to avoid basename conflicts...
ar: temporary file: No such file or directory
Reaping losing child 0x7f9bf0c45cf0 PID 75531
Makefile:1027: recipe for target 'libidn2.la' failed
여기 ar
에 대한 호출하지 라인 1027,입니까? 당신이 할 수있는 실패하는 조리법의 간단한 이해를
는 [이 annswer은] (https://stackoverflow.com/a/5820432/425738) 도움이 될 수 있습니다 도움이 될 수 있습니다 메이크 옵션의 사용 - 기본적으로 추가'V을 = 1 ...' – ldav1s