패키지 X를 사용해야 합니다. X는 Y에 의존하므로 Y의 개발 패키지(Y-dev)가 필요합니다. 또한 Y라는 소스 코드도 있습니다. Y의 소스 코드에서 Y-dev를 어떻게 컴파일합니까?
이 질문이 일관되지 않은 경우 X가 의존하는 패키지 Y를 활용하는 방법에 대한 올바른 방향을 알려주세요.
사양:
X는 R-2.15.3이다
Y는 readline-6.2입니다.
readline-6.2를 다운로드하여 설치했습니다 $HOME/software
.
$C_INCLUDE_PATH=$HOME/software/include:$HOME/software/include/readline
그리고
$LD_LIBRARY_PATH=$HOME/software/lib:$HOME/software/lib64
다음 readline 파일이 있습니다 $LD_LIBRARY_PATH
.
/home/paulk/software/lib/libreadline.a
/home/paulk/software/lib/libreadline.old
/home/paulk/software/lib/libreadline.so
/home/paulk/software/lib/libreadline.so.6
/home/paulk/software/lib/libreadline.so.6.2
/home/paulk/software/lib/libreadline.so.6.2.old
./configure --prefix=$HOME/software
R-2.15.3을 실행하면 다음과 같은 결과가 나타납니다.
configure: error: --with-readline=yes (default) and headers/libs are not available
.
내 배포판은 RPM 기반의 Scientific Linux입니다.
답변1
좋아요 개발 패키지를 컴파일할 필요는 없는 것 같습니다. readline을 사용하려면 CFLAGS
다음과 같이 스크립트를 설정 해야 합니다.LDFLAGS
./configure
export CFLAGS=-I$HOME/software
export LDFLAGS=-L$HOME/software
내 추론은 다음과 같습니다. 패키지 관리자를 사용할 때 대부분의 경우 미리 컴파일된 애플리케이션만 필요하기 때문에 개발 패키지가 필요합니다. 개발 패키지는 귀하가 갖게 될 것을 제공하도록 설계된 사전 컴파일된 버전입니다.만약에소스 코드에서 컴파일합니다.
따라서 소스 코드가 있을 때 개발 패키지를 컴파일하는 것은 다음 두 가지 이유로 일관되지 않습니다.
- 당신은 모든 소스를 가지고
- 패키지 관리자와 협력할 필요가 없습니다.
일부 전문가들이 내 주장을 세밀하게 조정할 수 있다고 확신하지만 (이봐!) 문제가 해결되고 의미가 있습니다.
감사해요.