소스에서 GDB를 빌드하려고 하는데 이상한 문제에 봉착했습니다. 어떤 정보가 관련성이 있는지 잘 모르겠습니다. 충분한 정보를 제공하지 못한 경우 알려주시기 바랍니다.
저는 Linux Mint에서 작업 중입니다. 클래스에서 제공되는 다양한 gdb 소스 파일과 빌드 스크립트가 포함된 tarball이 있습니다.
빌드 스크립트(linux-targ) 중 하나(귀중하다면 게시할 수 있음)를 실행할 때 다음 오류가 발생합니다.
.../gdb/install.sh -c -m 644 libreadline.a /usr/local/lib/libreadline.a
install: libreadline.a does not exist
make[1]: [install] Error 1
이것은 install.sh 스크립트에서 실패한 줄입니다.
if [ -f $src -o -d $src ]
then
true
else
echo "install: $src does not exist"
exit 1
fi
libreadline.a를 로컬 디렉터리에 복사하려고 시도했지만 역시 실패했습니다.
그러나 /usr/local/lib/libreadline.a
존재합니다. 제거했다가 다시 설치도 해봤습니다. 루트로 실행해도 상관 없을 것 같습니다.
설치 스크립트 보고서가 libreadlines.a
존재하지 않는 이유는 무엇입니까?
SE가 잘못된 경우 대안을 제안해 주세요.
답변1
아직 설치하지 않은 것 같습니다.도서관 읽기 라인도서관. 어떤 Linux 배포판을 사용하고 있는지 모르겠습니다. 우분투 설치 라이브러리의 경우:
sudo apt-get install libreadline7
그렇지 않으면 라이브러리 경로가 올바르게 설정되지 않습니다.
답변2
링커가 ".a" 파일을 찾을 수 없다고 불평하는 경우 이는 해당 파일이 라이브러리에 정적으로 링크되어 있음을 의미합니다. "readline-devel" 패키지를 설치하는 것만으로는 충분하지 않습니다. "readline-static" 패키지도 설치해야 합니다.
Centos 7을 사용하여 readline에 정적으로 연결된 것을 빌드하기 위해 설치해야 하는 패키지 이름은 다음과 같습니다. 다른 배포판은 다를 수 있습니다.