プロジェクトをコンパイルしようとしましたが、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
プログラムでエラーが発生します。