プロジェクトをコンパイルしようとしていますが、make
次の出力が得られました
g++ -g -Wall -std=c++11 -I include/ -o build/example.o -c example/example.cpp
as: unrecognized option '--64'
このエラーは、オプション--64
が使用されているが、コマンド内に存在しないため認識されないことを示しています。このエラーがオンラインで他に発生している場合は、に
変更することを提案しています。この問題は、使用されている gcc のバージョンに関連しています。--64
--m64
しかし、私のケースではオプションは存在しません。コマンドに指定されたオプションが含まれていないのに、なぜこのエラーが表示されるのでしょうか?
編集:make -m
結果は同じ出力になります。
また、g++ コマンドを手動で実行した場合でもエラーが発生します。
編集: ファイルをソースした後、ターミナルにエラーが表示されます: source setup.bash
(プロジェクトで何らかの操作に必要)
スクリプトは次の変数をエクスポートしますが、gcc とは関係がないようです。
- OPENOCD_スクリプト
- パス
- IDF_TOOLS_EXPORT_CMD
- IDF_PYTHON_INSTALL_CMD
- 環境変数
また、いくつかのパスを追加します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 はドライバー プログラムです。一連の他のプログラムを呼び出して、コンパイル、アセンブル、リンクの作業を実行します。
as
gcc によって呼び出されるプログラムの 1 つです。
スクリプトsetup.bash
は へのパスを変更しませんでしたgcc
が、 のパスを変更しましたas
。
そのため、置換プログラムによってエラーがスローされますas
。