g++ 인식할 수 없는 옵션이 명령의 일부가 아닙니다

g++ 인식할 수 없는 옵션이 명령의 일부가 아닙니다

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

gcc는 드라이버입니다. 일련의 다른 프로그램을 호출하여 컴파일, 어셈블리 및 연결 작업을 완료합니다.

asgcc라는 프로그램 중 하나입니다.

스크립트 setup.bash에는 변경된 경로가 없지만 gcc변경되었습니다 as.
따라서 대체 as프로그램에서 오류가 발생합니다.

관련 정보