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

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

이 글은 같은 문제를 겪고 있는 분들을 위한 질문/답변 게시물입니다.

이 문제는 표준 경로에 없는 별도의 툴체인(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

그 이유는 다음과 같습니다.

요점은 툴체인의 위치가 앞에 추가되었기 때문에 configure및 단계가 작동했다는 것입니다(예 : ).makePATHgcc

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

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

su
# make install

관련 정보