g++ unbekannte Option nicht Teil des Befehls

g++ unbekannte Option nicht Teil des Befehls

Ich versuche, ein Projekt zu kompilieren. Ich habe makefolgende Ausgabe verwendet und erhalten

g++ -g -Wall -std=c++11 -I include/ -o build/example.o -c example/example.cpp
as: unrecognized option '--64'

Der Fehler besagt, dass die Option --64verwendet und nicht erkannt wird, solange sie nicht im Befehl enthalten ist.
Andere Vorkommen dieses Fehlers im Internet legen eine Änderung --64in nahe --m64. Dieses Problem hängt mit der verwendeten GCC-Version zusammen.

Aber in meinem Fall ist die Option nicht vorhanden. Wie kann dieser Fehler auftreten, wenn der Befehl die angegebene Option nicht enthält?

Bearbeiten: make -mführt zur gleichen Ausgabe.
Und der Fehler tritt auch auf, wenn der g++-Befehl manuell ausgeführt wird.

Bearbeiten: Der Fehler wird im Terminal angezeigt, nachdem eine Datei als Quelle verwendet wurde: source setup.bash(vom Projekt für einige Vorgänge benötigt)

Das Skript exportiert die folgende Variable, aber sie scheint nicht in Verbindung mit gcc zu stehen.

  • OPENOCD_SCRIPTS
  • IDF_PATH
  • IDF_TOOLS_EXPORT_CMD
  • IDF_PYTHON_INSTALL_CMD
  • IDF_PYTHON_ENv_PATH

Es fügt auch einen Pfad hinzu zuPATH

Trotz dieser Informationen verstehe ich immer noch nicht, warum der Fehler auftritt.
Selbst wenn die GCC-Version aufgrund der hinzugefügten Pfade geändert wurde PATH, ist die Option nicht Teil des Befehls.

Bearbeiten: Nach source setup.bash,

gccist immer noch das gleiche

$ type gcc
gcc is /usr/bin/gcc
$ gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
...

asÄnderungen

$ 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
...

Antwort1

gcc.gnu.orgbesagt, dass

gcc ist ein Treiberprogramm. Es führt seine Aufgabe aus, indem es eine Reihe anderer Programme aufruft, die die Arbeit des Kompilierens, Assemblierens und Verknüpfens übernehmen.

asist eines der von gcc aufgerufenen Programme.

Das setup.bashSkript hat den Pfad nicht zu geändert, gccwohl aber für as.
Der Fehler wird daher vom ersetzenden asProgramm ausgelöst.

verwandte Informationen