編譯器無法辨識架構

編譯器無法辨識架構

我在 Ubuntu 中編譯函式庫 (XSB Prolog) 時遇到問題。

我正在配置和編譯它:

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產生的,該標誌在第 184 行被硬編碼,因此它不依賴目標架構,因此這不是架構檢測的問題:config/x86_64-unknown-linux-gnu/emuMakefileconfigure-faltivec

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 重新編譯以建立共用物件。不幸的是我不知道它丟失在哪裡......

事實上,這些似乎是他們的建置系統中的錯誤,您也許應該向上游報告它們。

相關內容