Компилятор не распознает архитектуру

Компилятор не распознает архитектуру

У меня возникли проблемы при компиляции библиотеки (XSB Prolog) в Ubuntu.

Я настраиваю и компилирую его с помощью:

sudo ./configure -prefix=/usr/local/lib/
sudo ./makexsb

Затем мне нужно выполнить следующую команду, чтобы сгенерировать определенные динамические библиотеки:

sudo ./makexsb dynmodule

Но это приводит к следующему сбою:

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

Насколько я понимаю, эта -faltivecопция имеет смысл только при сборке на архитектуре PowerPC. Так что может быть, что правильная архитектура не определяется? Если это так, как я могу быть уверен, что архитектура определяется правильно?

решение1

Если посмотреть на build/emuMakefile.in, который выводится config/x86_64-unknown-linux-gnu/emuMakefileпри запуске configureскрипта, -faltivecфлаг жестко закодирован в строке 184, поэтому он не зависит от целевой архитектуры, следовательно, это не проблема определения архитектуры:

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 ""

Вы можете попробовать удалить его, чтобы снова настроить/скомпилировать, но вы также можете столкнуться с ошибкой, предлагающей вам перекомпилировать с -fPIC, чтобы создать общий объект. К сожалению, я не могу понять, где его не хватает…

На самом деле, похоже, это ошибки в их системе сборки, возможно, вам следует сообщить о них вышестоящей команде.

Связанный контент