Gcc

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

  • June 7, 2021

我正在嘗試編譯一個項目,我使用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_PATH
  • 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
...

gcc.gnu.org指出

gcc 是一個驅動程序。它通過呼叫一系列其他程序來完成編譯、組裝和連結工作。

as是 gcc 呼叫的程序之一。

setup.bash腳本沒有改變路徑,gcc但它改變了as.

因此,替換as程序會拋出錯誤。

引用自:https://unix.stackexchange.com/questions/652322