Estoy intentando compilar un proyecto, lo usé make
y obtuve el siguiente resultado
g++ -g -Wall -std=c++11 -I include/ -o build/example.o -c example/example.cpp
as: unrecognized option '--64'
El error indica que la opción --64
se utiliza y no se reconoce mientras no está en el comando.
Otras apariciones en línea de este error sugieren cambiar --64
a --m64
. Este problema está relacionado con la versión de gcc utilizada.
Pero la opción no está presente en mi caso, ¿cómo puede aparecer este error si el comando no contiene la opción especificada?
Editar: make -m
da como resultado el mismo resultado.
Y el error ocurre incluso cuando se ejecuta el comando g++ manualmente.
Editar: el error aparece en la terminal después de obtener un archivo: source setup.bash
(requerido por el proyecto para alguna operación)
El script exporta la siguiente variable pero no parece estar relacionada con gcc.
- OPENOCD_SCRIPTS
- IDF_PATH
- IDF_TOOLS_EXPORT_CMD
- IDF_PYTHON_INSTALL_CMD
- IDF_PYTHON_ENv_PATH
También agrega algún camino aPATH
Incluso con esta información, todavía no entiendo por qué ocurre el error.
Incluso si la versión de gcc se cambió debido a las rutas agregadas PATH
, la opción no forma parte del comando.
Editar: Después source setup.bash
,
gcc
sigue siendo el mismo
$ type gcc
gcc is /usr/bin/gcc
$ gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
...
as
cambios
$ 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
...
Respuesta1
gcc.gnu.orgEstablece que
gcc es un programa controlador. Realiza su trabajo invocando una secuencia de otros programas para realizar el trabajo de compilar, ensamblar y vincular.
as
es uno de los programas invocados por gcc.
El setup.bash
script no cambió la ruta gcc
pero sí lo hizo para as
.
Por tanto, el error lo genera el as
programa de sustitución.