Por que o `sudo make install` está falhando com "relocação não reconhecida"?

Por que o `sudo make install` está falhando com "relocação não reconhecida"?

Esta é uma postagem de perguntas/respostas, destinada a pessoas que enfrentam o mesmo problema.

Este problema só acontece ao usar um conjunto de ferramentas separado (gcc, binutils, libtool) que não está no caminho padrão.

ou seja, which gccfornece um local que não está listado por

sudo env | grep -w "PATH="

Isso foi necessário para compilar o octave-4.2 no OpenSUSE 13.2 (o gcc padrão era muito antigo).

Em um sistema padrão, onde há apenas um conjunto de ferramentas, e esse conjunto de ferramentas está no caminho padrão, sudo make installfunciona perfeitamente.

Aqui está o erro, em 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

Responder1

Aqui está o motivo:

A questão é que as etapas configuree makefuncionaram porque PATHforam anexadas à localização do conjunto de ferramentas (por exemplo gcc)

Massudonão propaga as variáveis. Conseqüentemente, sudo make installexecutei comandos com o conjunto de ferramentas errado (o antigo, gccpor exemplo).

Uma solução é apenas usarsu

su
# make install

informação relacionada