0
크로스 플랫폼 소프트웨어를 개발 중이고 Zip 패키지로 배포하려고합니다.의존성이있는 패키지 소프트웨어 - 얼마나 깊게 가야합니까?
Linux의 경우 패키지와의 종속성을 패키지하지 않습니다. Windows의 경우 패키지에 dll도 배포합니다.
Mac OS X의 경우 모든 dylib 파일을 빌드 폴더에 반복적으로 복사하고 링크를 변경하는 스크립트가 있습니다.
물론 이것은 패키지하지 않아야하는 파일 목록으로 연결됩니다. libsystem_malloc.dylib
, libremovefile.dylib
.
/usr/local/*
에 dylibs를 설치하거나 모든 OS X 설치에서 사용할 수있는 파일을 포함하지 않는 체계적인 방법이 있습니까?
종속성 중 대부분 (지금은 모두 OK)이 Homebrew 패키지입니다. 도움이된다면.
에 관심있는 사람들을위한, 이것은 재귀 적으로 복사하고 다시 링크에 대한 배쉬 코드 : 만 /usr/local/
에서 라이브러리를 팩, 지금은
while true; do
INSTALLED=0
for dylib in *.dylib; do
LIBS=`otool -L $dylib`
if [ "x$LIBS" != "x" ]; then
echo "$dylib is using:"
for lib in $LIBS{@:2}; do
if echo $lib | grep --quiet 'dylib$'; then
echo " $lib"
new_lib=`echo $lib | sed 's|.*/\(.*\.dylib\)|\1|'`
if [ -e $PD_APP_LIB/$new_lib ]; then
echo "$PD_APP_LIB/$new_lib already exists, skipping copy."
else
install -vp $lib $PD_APP_LIB
INSTALLED=1
fi
install_name_tool -id @loader_path/$new_lib $PD_APP_LIB/$new_lib
install_name_tool -change $lib @loader_path/$new_lib $dylib
fi
done
echo " "
fi
done
if [ $INSTALLED -eq 0 ]; then
break
fi
done