1. ホーム
  2. プログラミング言語
  3. その他

ld: アーキテクチャ x86_64 のシンボルが見つかりません。

2022-01-22 07:53:13

I Preceded by.

   オーディオアルゴリズムのシミュレーション中に、正常に動作していたプログラムが突然、mac上でエラーを報告し、そのエラーは

ld: アーキテクチャ x86_64 のシンボルが見つかりません。
clang: error: linker command failed with exit code 1 (use -v to see invocation) リンカーのコマンドは終了コード1で失敗しました。

どのようなエラーなのでしょうか?何年もプログラムを動かしていますが、このエラーは初めてです。何が問題なのでしょうか?

II 解決策のアイデア

   この手の場所は、問題がすぐには分からないので、一体何が起こっているのか、簡略化する方法を使いました。多くのコードを効率化した結果、コードが悪いのではなく、コンパイラが悪いことがわかりました。海外のことはGoogleに聞いてもわからないので、検索してみると、ひらめくかもしれません。

その通り、ちょっとしたコーナーで、こんな言葉を見つけました。

私は、単に2つの異なるオブジェクトファイル(main.oとadd.o)から実行ファイルを作ろうとしたときに、同様の警告/エラー/失敗が発生しました。私はこのコマンドを使用していました。

gcc -o exec main.o add.o

しかし、私のプログラムはC++のプログラムです。  g++  コンパイラで解決しました。

g++ -o exec main.o add.o

という印象をずっと持っていました。  gcc  どうやら違うようです。このエラーを検索している誰かの役に立てれば幸いです。

III 解決策

   自分のMakefileファイルを確認し、これがg++の使用であることを見つけるだけで、gccに変更した後、すぐに良いを試してみてください。ははは、コンパイラがやってくれたようです。

IVリフレクション

  この種の問題は、自分の基礎知識が十分強固でないことを明らかにするものであるああ、もっと学ぶべきことがありそうだ。