
Esta es una publicación de preguntas y respuestas, destinada a personas que se encuentran con el mismo problema.
Este problema sólo ocurre cuando se utiliza una cadena de herramientas separada (gcc, binutils, libtool) que no está en la ruta estándar.
es decir, which gcc
proporciona una ubicación que no figura en la lista
sudo env | grep -w "PATH="
Esto fue necesario para compilar octave-4.2 en OpenSUSE 13.2 (el gcc estándar era demasiado antiguo).
En un sistema estándar, donde solo hay una cadena de herramientas y esta cadena de herramientas está en la ruta estándar, sudo make install
funciona bien.
Aquí está el error, en 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
Respuesta1
Aquí está la razón por la cual:
El punto era que los pasos configure
y make
funcionaban porque se PATH
anteponía a la ubicación de la cadena de herramientas (por ejemplo gcc
, )
Perosudo
no propaga las variables. Por lo tanto, sudo make install
ejecutó comandos con la cadena de herramientas incorrecta (la anterior, gcc
por ejemplo).
Una solución es simplemente usarsu
su
# make install