我正在嘗試編譯一個項目,我使用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
程序會引發該錯誤。