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程序会引发该错误。

相关内容