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_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는 드라이버 프로그램입니다. 컴파일, 어셈블링 및 링크 작업을 수행하기 위해 일련의 다른 프로그램을 호출하여 작업을 수행합니다.

asgcc가 호출하는 프로그램 중 하나입니다.

스크립트 setup.bash는 경로를 로 변경하지 않았지만 gcc에 대해서는 변경했습니다 as.
따라서 교체 프로그램에서 오류가 발생합니다 as.

관련 정보