프로젝트를 컴파일하려고 하는데 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_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
.