g++ 無法辨識的選項不是指令的一部分

g++ 無法辨識的選項不是指令的一部分

我正在嘗試編譯一個項目,我使用make並獲得了以下輸出

g++ -g -Wall -std=c++11 -I include/ -o build/example.o -c example/example.cpp
as: unrecognized option '--64'

該錯誤表示該選項--64已使用但無法識別,但該選項不在命令中。
在線出現此錯誤的其他情況建議更改--64--m64.這個問題與使用的gcc版本有關。

但在我的情況下該選項不存在,當命令不包含指定選項時如何出現此錯誤?

編輯:make -m產生相同的輸出。
即使手動執行 g++ 命令也會出現錯誤。

編輯:取得檔案後,終端機中出現錯誤:(source setup.bash專案需要進行某些操作)

該腳本導出以下變量,但它們似乎與 gcc 無關。

  • OPENOCD_SCRIPTS
  • IDF_路徑
  • IDF_TOOLS_EXPORT_CMD
  • IDF_PYTHON_INSTALL_CMD
  • IDF_PYTHON_ENv_PATH

它還添加了一些路徑PATH

即使有了這些訊息,我仍然不明白為什麼會發生錯誤。
即使 gcc 版本因添加到 的路徑而更改PATH,該選項也不是命令的一部分。

編輯:之後source setup.bash

gcc還是一樣

$ type gcc
gcc is /usr/bin/gcc
$ gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
...

as變化

$ type as
as is /usr/bin/as
$ as --version
GNU assembler (GNU Binutils for Ubuntu) 2.34
...
$ type as
as is /path/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/xtensa-esp32-elf/bin/as
$ as --version
GNU assembler (crosstool-NG esp-2020r3) 2.31.1
...

答案1

gcc.gnu.org指出

gcc是一個驅動程式。它透過呼叫一系列其他程式來完成編譯、彙編和連結的工作。

as是 gcc 呼叫的程式之一。

setup.bash腳本沒有更改 的路徑,gcc但更改了as.
因此,替換as程序會引發該錯誤。

相關內容