R-3.4.1
액세스 권한은 있지만 루트 액세스 권한은 없는 서버에서 컴파일하려고 합니다. 버전 문제로 인해 스크립트 컴파일에 실패했습니다 zlib
. 나는 지시를 따랐다.여기, 컴파일하고 zilb
이 경로를 $LIBRARY_PATH$ 둘 다에 추가하려고 시도했지만 작동하지 않는 경로에서 사용할 수 있습니다. 또한 위 링크에 따라 다음 명령을 실행해 보았습니다./storage/users/<uname>/trm/zlib/lib
$LD_LIBRARY_PATH
configure
$ ./configure --prefix=/storage/users/<uname>/trm/R LDFLAGS="-L/storage/users/<uname>/trm/zlib/lib"
하지만 오류가 여전히 존재합니다. 구성 스크립트 자체에는 위 링크에 언급된 오류가 없습니다. 안타깝게도 서버에 배포판이 무엇인지 모르겠습니다. 분명히 뭔가 빠진 것이 있지만 무엇인지 모르겠습니다.
편집 1
./configure
다음은 명령의 마지막 몇 줄입니다.
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking if zlib version >= 1.2.5... no
checking whether zlib support suffices... configure: error: zlib library and headers are required
(@PSkocik이 제안한대로 이것을 시도했습니다)
또한 확인을 위해 명령 경로를 다음 위치에 복사하여 붙여넣었 configure
습니다 ls
.
libz.a libz.so libz.so.1 libz.so.1.2.11 pkgconfig
편집 2
@AmeyaVS의 지시에 따라 여기에 게시한 내용zlib.pc
prefix=/storage/users/<uname>/trm/zlib
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
sharedlibdir=${libdir}
includedir=${prefix}/include
Name: zlib
Description: zlib compression library
Version: 1.2.11
Requires:
Libs: -L${libdir} -L${sharedlibdir} -lz
Cflags: -I${includedir}
답변1
configure
라이브러리에 대한 pkg-config 스크립트 경로와 함께 스크립트를 제공 해야 합니다 zlib
.
GNU Autotools
제가 도서관을 지을 때 보통 하는 일은 다음과 같습니다 .
# First unzip the files from the library zipped file.
tar xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
# if it has **configure** script in the source directory
mkdir objdir
cd objdir
# Set this environment variable from where you want to install the library.
# export ZLIB_HOME=<path where you want to install zlib>
export ZLIB_HOME=$HOME/apps/zlib
../configure --prefix=$ZLIB_HOME
# Build the library
make
# Install the library
make install
# Set the PKG_CONFIG_PATH if PKG_CONFIG_PATH is not set for pkgconfig to locate the build flags for the library.
export PKG_CONFIG_PATH=$ZLIB_HOME/lib/pkgconfig
# or use this in-case the PKG_CONFIG_PATH is not empty:
# export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$ZLIB_HOME/lib/pkgconfig
이제 R
동일한 터미널 세션에서 패키지를 구성해 보십시오.
노트:
내가 일반적으로 하는 일은 라이브러리의 환경 변수를 내 $HOME/.bashrc
(bash 쉘을 사용한다고 가정하고 터미널 세션에 해당하는 파일을 찾으십시오.) 라이브러리가 필요한 다른 패키지의 최신 설치를 위해 라이브러리를 유지할 수 있도록 다음을 수행합니다.
export ZLIB_HOME=$HOME/apps/zlib
# Assuming LD_LIBRARY_PATH is already populated.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ZLIB_HOME/lib
# Assuming PKG_CONFIG_PATH is already populated.
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$ZLIB_HOME/lib/pkgconfig
고쳐 쓰다:
다음을 사용하여 지정된 버전을 찾고 모든 라이브러리의 경로를 포함할 수 있습니다.
# Check module/library version
# pkg-config --modversion <library_name>
pkg-config --modversion zlib
# Check compiler include flag for the specified library.
# pkg-config --cflags <library_name>
pkg-config --cflags zlib
zlib
버전을 as로 가져오고 1.2.11
gcc 포함 경로는 as이며
-I/storage/users/<uname>/trm/zlib/include
구성 스크립트가 여전히 버전을 다음으로 R
보고하는 경우 구성 스크립트는 매우 특정한 위치에서 종속 라이브러리를 찾을 가능성이 높습니다.zlib
1.2.5