Я пытаюсь скомпилировать проект, я использовал 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.
- ОТКРЫТЫЕ_CD_СКРИПТЫ
- 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
...
решение1
gcc.gnu.orgговорится, что
gcc — это программа-драйвер. Она выполняет свою работу, вызывая последовательность других программ для выполнения работы по компиляции, сборке и линковке.
as
— одна из программ, вызываемых gcc.
Скрипт setup.bash
не изменил путь к , gcc
но изменил путь к as
.
Таким образом, ошибка выдается заменяющей as
программой.