Estou tentando compilar um projeto, usei make
e obtive a seguinte saída
g++ -g -Wall -std=c++11 -I include/ -o build/example.o -c example/example.cpp
as: unrecognized option '--64'
O erro indica que a opção --64
é usada e não reconhecida enquanto não está no comando.
Outras ocorrências online deste erro sugerem mudar --64
para --m64
. Este problema está relacionado à versão do gcc usada.
Mas a opção não está presente no meu caso, como esse erro pode aparecer enquanto o comando não contém a opção especificada?
Editar: make -m
resulta na mesma saída.
E o erro ocorre mesmo ao executar o comando g++ manualmente.
Editar: O erro aparece no terminal após obter um arquivo: source setup.bash
(exigido pelo projeto para alguma operação)
O script exporta a seguinte variável, mas elas não parecem estar relacionadas ao gcc.
- OPENOCD_SCRIPTS
- IDF_PATH
- IDF_TOOLS_EXPORT_CMD
- IDF_PYTHON_INSTALL_CMD
- IDF_PYTHON_ENv_PATH
Ele também adiciona algum caminho paraPATH
Mesmo com essas informações, ainda não entendo por que o erro ocorre.
Mesmo que a versão do gcc tenha sido alterada devido aos caminhos adicionados PATH
, a opção não faz parte do comando.
Editar: Depois source setup.bash
,
gcc
ainda é o mesmo
$ type gcc
gcc is /usr/bin/gcc
$ gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
...
as
mudanç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
...
Responder1
gcc.gnu.orgafirma que
gcc é um programa de driver. Ele realiza seu trabalho invocando uma sequência de outros programas para realizar o trabalho de compilação, montagem e ligação.
as
é um dos programas invocados pelo gcc.
O setup.bash
script não alterou o caminho para, gcc
mas sim para as
.
O erro é, portanto, lançado pelo as
programa de substituição.