같은 고민을 갖고 계신 분들을 위한 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
이유는 다음과 같습니다.
핵심은 도구 체인의 위치가 앞에 추가되므로 configure
및 make
단계가 작동한다는 것입니다(예: ).PATH
gcc
하지만sudo
변수를 전파하지 마십시오. 따라서 잘못된 툴체인(예: sudo make install
이전 툴체인) 을 사용하여 명령을 실행합니다 .gcc
한 가지 해결책은 그냥 사용하는 것입니다su
su
# make install