我正在尝试编译一个项目,我使用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是一个驱动程序。它通过调用一系列其他程序来完成编译、汇编和链接的工作。
as
是 gcc 调用的程序之一。
该setup.bash
脚本没有更改 的路径,gcc
但更改了as
.
因此,替换as
程序会引发该错误。