web-dev-qa-db-ja.com

「起動に失敗しました。バイナリが見つかりません。」 Snow LeopardおよびEclipse C / C ++ IDE issue

質問ではありませんが、この問題の解決策を探してインターネットを精査し、それをSOの良き人々と共有したいと考えました。 newbsがアクセスできるように、わかりやすく説明します。 :)(これが間違った場所である場合はおologiesびします-ただ助けになろうとしています。

この問題は、Eclipse C/C++ IDEを使用しようとするほとんどすべてのユーザーOS X Snow Leopardで発生しますが、Eclipse C/C++ IDEを使用している人(私のような) = Leopardで、アップグレード時にEclipseを使用できなくなった問題は、ユーザーがソフトウェアをビルド/コンパイル/リンクするときに発生し、次のエラーが表示されます。

起動に失敗しました。バイナリが見つかりません。

さらに、左側のプロジェクトウィンドウの「バイナリ」ブランチは、単に存在しません。

問題:Snow Leopardに付属のGCC 4.2(GNU Compiler Collection)は、デフォルトで64ビットでバイナリをコンパイルします。残念ながら、Eclipseが使用するリンカーは64ビットバイナリを認識しません。ここでは他の問題があるかもしれませんが、要するに、少なくともEclipseが読み取れないバイナリが生成されず、Eclipseがバイナリを見つけられないという結果になります。

1つの解決策は、ファイルを作成するときに-Arch i686フラグを追加することですが、毎回ファイルを手動で作成するのは面倒です。幸いなことに、Snow LeopardにはGCC 4.0も付属しており、デフォルトで32ビットでコンパイルされます。したがって、1つの解決策は、これをデフォルトのコンパイラとして単にリンクすることです。これは私がやった方法です。

解決策:GCCは/ usr/binにあり、通常は隠しフォルダーです。隠しフォルダーを表示することをシステムに明示的に指示しない限り、Finderで表示できません。とにかく、やりたいことは/ usr/binフォルダーに移動して、GCCコマンドをGCC 4.2とリンクするパスを削除し、GCCコマンドとGCC 4.0をリンクするパスを追加します。言い換えると、ユーザーまたはEclipseがGCCにアクセスしようとするとき、リンカーがファイルを読み取れるように、コマンドをデフォルトで32ビットでビルドするコンパイラーに送信する必要があります。 64ビットでコンパイルするコンパイラに行きたくないのです。

これを行う最良の方法は、アプリケーション/ユーティリティに移動し、ターミナルと呼ばれるアプリを選択することです。テキストプロンプトが表示されます。 「(コンピューター名):〜(ユーザー名)$」のようになります(最後にユーザー入力用のスペースがあります)。上記のタスクを実行する方法は、次のコマンドを入力し、各コマンドを順番にVERBATIMで入力し、個々の行ごとにEnterキーを押すことです。

cd /usr/bin
rm cc gcc c++ g++
ln -s gcc-4.0 cc
ln -s gcc-4.0 gcc
ln -s c++-4.0 c++
ln -s g++-4.0 g++

私と同様に、これらのファイルにアクセスする権限がないことを示すエラーが表示される可能性があります。その場合は、代わりに次のコマンドを試してください。

cd /usr/bin
Sudo rm cc gcc c++ g++
Sudo ln -s gcc-4.0 cc
Sudo ln -s gcc-4.0 gcc
Sudo ln -s c++-4.0 c++
Sudo ln -s g++-4.0 g++

Sudoはパスワードを要求する場合があります。 Sudoを使用したことがない場合は、単にEnterキーを押してみてください。それでも解決しない場合は、メインの管理者アカウントのパスワードを試してください。

その他の解決策ビルド変数をEclipseに入力できる場合があります。私はこれを試しましたが、私はそれについて十分に知りません。感じてみたいなら、おそらく必要なフラグは-Arch i686です。真剣に、GCC-4.0はこれまでずっと働いていましたが、今すぐ切り替える理由はありません。コンパイラ自体のデフォルトを変更する方法があるかもしれませんが、もう一度、私はそれについて十分に知りません。

これが有益で有益であることを願っています。良いコーディング!

23
Alex

記録のために、30分間苦労した後、ライオン(mac 10.7)でこの問題を解決しました:プロジェクトメニュー->プロパティ-> C/c ++ビルド->設定->バイナリパーサーでMach-O 64パーサーとエルフパーサーを選択しましたタブ(Eclipseバージョン:3.7.2の最初のタブ、または3番目のタブ)[グウェンステファニによる甘い脱出を聞きながらlol]。

19
Viren

私は同じメッセージを受け取っていました

起動に失敗しました。バイナリが見つかりません。

プロジェクトフォルダをCtrlキーを押しながらクリックして、[プロジェクトのビルド]を選択する必要があることに気付いていなかったためです。これは、EclipseのJavaプロジェクトで行う必要はありません。そのため、私のような他の初心者も同じ問題を抱えている可能性があります。

18
Charlie

前述のように、これは必要なフラグをEclipseに追加するだけで実現できます。

これを行うには、プロパティウィンドウを開き、[c/c ++ build]> [settings]に移動します。右側のツリービューで、「MacOS X Cリンカー」と「GCC Cコンパイラ」の「その他」に移動し、テキストボックスに〜 "flags"というラベルを付けて追加します: "-Arch i686"

8
none

Mac OSX 10.6.8を実行しており、EclipseにはCross GCCツールチェーンがインストールされていました。だから、私はこれをやった:

  1. プロジェクトのプロパティで、C/C++ Build-> Tool Chain editorを選択します。
  2. 現在のツールチェーンをCross GCCからMacOSX GCCに変更します。
  3. また、Current BuilderをCDT Internal Builderに変更しました。 (これが重要かどうかはわかりません。)
  4. [設定]の下にすべてのものを残しました。
  5. 再構築します。プロジェクトのDebugフォルダーに、プロジェクトと同じ名前のバイナリが表示されます。
5
Evan McClure

ああ、もう1つ変更する前にリンクを記録することを忘れないでください!システム全体の設定を変更したくない場合は、PATHで/ usr/bin(たとえば、$ HOME/bin)の前にディレクトリを追加し、そこにシンボリックリンクを作成します。 :

cd /usr/bin
Sudo rm cc gcc c++ g++
Sudo ln -s gcc-4.2 cc
Sudo ln -s gcc-4.2 gcc
Sudo ln -s c++-4.2 c++
Sudo ln -s g++-4.2 g++

/ usr/binを確認して、「gcc-4.x」のようなファイルを探してください。 4.0または4.2でない場合は、お持ちのバージョン番号を上記のバージョン番号に置き換えてください。

編集:ああ、GCC-4.0を使用している場合、64ビットのカーボンEclipseの実行にも問題があります。ただし、32ビットのCarbonは優れた機能を発揮します。

3
Alex

私はどこかにprefsファイルがあり、gccの複数のバージョン間で前後にスワップできるようにするgcc_selectと呼ばれるプログラムを得ました。

Macportsから入手したと思いますが、よくわかりません。

1
Brian Postow

「言及したように、これはEclipseに必要なフラグを追加するだけで実現できます。

これを行うには、プロパティウィンドウを開き、[c/c ++ build]> [settings]に移動します。右側のツリービューで、「MacOS X Cリンカ」と「GCC Cコンパイラ」の「その他」に移動し、〜 "flags"というラベルの付いたテキストボックスに追加します: "-Arch i686" "

このルートに進むと、コマンドを呼び出すことでプロセッサのアーキテクチャを簡単に確認できることに注意してください

うなめ-p

bashターミナル(Terminal.appなど)で「-Arch i686」を「-Arch -i386」に変更します。

1
Priestbait

代わりに、[プロジェクト]-> [プロパティ]に移動します。 C/C++ Build-> Settingsを選択します。 [ツール設定]で、C++コンパイラとリンカーコマンドをg ++からg ++-4.0に変更します。それでもエラーが発生する場合は、cコンパイラもgcc-4.0に変更してください。安全のために、Cコンパイラの設定も変更しました。すべてが私にとって完璧に機能しています。

0
user400418

プロジェクトから「デバッグ」フォルダーを削除してから、「プロジェクトのビルド」を実行します。

enter image description here

0

こんにちは、Eclipse 32ビットをインストールし、これまでのところMac Mountain Lionで完全に動作しています。コンパイル時に見つからないバイナリを取得していましたが、32ビットEclipseでは問題ありませんでした。

0
uplearnedu.com