"인식할 수 없는 재배치"로 인해 "sudo make install"이 실패하는 이유는 무엇입니까?

"인식할 수 없는 재배치"로 인해 "sudo make install"이 실패하는 이유는 무엇입니까?

같은 고민을 갖고 계신 분들을 위한 Q&A 포스팅입니다.

이 문제는 표준 경로에 없는 별도의 툴체인(gcc, binutils, libtool)을 사용할 때만 발생합니다.

즉, which gcc비공개 위치를 제공합니다.

sudo env | grep -w "PATH="

이는 OpenSUSE 13.2에서 Octave-4.2를 컴파일하는 데 필요합니다(표준 gcc는 너무 오래되었습니다).

표준 시스템에는 툴체인이 하나만 있으며 해당 툴체인은 표준 경로에 있으며 sudo make install제대로 작동합니다.

다음은 오류입니다 sudo make install.

libtool: warning: relinking 'Magick++/lib/libGraphicsMagick++.la'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld:
Magick++/lib/.libs/Magick___lib_libGraphicsMagick___la-Image.o: unrecognized relocation (0x2a) in section `.text'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
libtool: error: error: relink 'Magick++/lib/libGraphicsMagick++.la' with the above command before installing it

답변1

이유는 다음과 같습니다.

핵심은 도구 체인의 위치가 앞에 추가되므로 configuremake단계가 작동한다는 것입니다(예: ).PATHgcc

하지만sudo변수를 전파하지 마십시오. 따라서 잘못된 툴체인(예: sudo make install이전 툴체인) 을 사용하여 명령을 실행합니다 .gcc

한 가지 해결책은 그냥 사용하는 것입니다su

su
# make install

관련 정보