
Tengo problemas para compilar una biblioteca (XSB Prolog) en Ubuntu.
Lo estoy configurando y compilando con:
sudo ./configure -prefix=/usr/local/lib/
sudo ./makexsb
Luego, necesito ejecutar el siguiente comando para generar ciertas bibliotecas dinámicas:
sudo ./makexsb dynmodule
Pero está fallando con el siguiente resultado:
make -f ../config/x86_64-unknown-linux-gnu/topMakefile dynmodule
Preparing...
make[1]: Entering directory `/home/parallels/prologengines/XSB/emu'
Making XSB Shared Library /home/parallels/prologengines/XSB/config/x86_64-unknown-linux-gnu/bin/libxsb.so
gcc: error: unrecognized command line option ‘-faltivec’
make[1]: *** [xsbdynmod] Error 1
Hasta donde tengo entendido, la -faltivec
opción sólo tiene sentido cuando se construye sobre arquitecturas PowerPC. Entonces, ¿podría ser que no se esté detectando la arquitectura correcta? Si ese es el caso, ¿cómo puedo estar seguro de que la arquitectura se detecta correctamente?
Respuesta1
Mirando build/emuMakefile.in
lo que se produce config/x86_64-unknown-linux-gnu/emuMakefile
cuando se ejecuta configure
el script, el -faltivec
indicador está codificado en la línea 184, por lo que no depende de la arquitectura de destino y, por lo tanto, no es un problema de detección de arquitectura:
xsbdynmod::
@echo "Making XSB Shared Library $(bindir)/libxsb.$(SHAREDLIB_EXTENSION)"
@@LD@ -o libxsb.$(SHAREDLIB_EXTENSION) $(DYNMOD_LDFLAGS) -faltivec -fPIC $(XSBMOD_LDFLAGS) $(OBJS) ${ODBCOBJ} ${INTERPROLOGOBJ} -lm
@cp libxsb.$(SHAREDLIB_EXTENSION) $(bindir) 2>/dev/null || echo ""
Puede intentar eliminarlo al configurar/compilar nuevamente, pero también puede encontrar un error que le sugiere volver a compilar con -fPIC para crear un objeto compartido. Desafortunadamente no puedo entender dónde falta...
De hecho, esos parecen ser errores de su sistema de compilación, tal vez deberías informarlos previamente.