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プログラムでエラーが発生します。

関連情報