프로젝트를 컴파일하려고 하는데 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
프로그램에서 오류가 발생합니다.