
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 gcc
fornece 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 install
funciona 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 configure
e make
funcionaram porque PATH
foram anexadas à localização do conjunto de ferramentas (por exemplo gcc
)
Massudo
não propaga as variáveis. Conseqüentemente, sudo make install
executei comandos com o conjunto de ferramentas errado (o antigo, gcc
por exemplo).
Uma solução é apenas usarsu
su
# make install