web-dev-qa-db-ja.com

Eclipse CDTプロジェクトはビルドされましたが、「起動に失敗しました。バイナリが見つかりません」

Windows 7、Eclipse CDT、Juno Service Release 2、クロスコンパイラ。

プロジェクトは生成された実行可能ファイルをコンパイルしますが、Eclipseはそれらを見ることができません。したがって、「実行」は失敗します。実行可能ファイルは、デバッグディレクトリに配置されます。コンパイルされた実行可能ファイルでのダブルクリックまたはコマンドプロンプト呼び出しは問題なく動作します。

enter image description here

これをどのように解決できますか?

32
Nenad Bulatovic

私は解決策を見つけたと思います-Eclipseが実行可能ファイルを認識できるように、適切なバイナリパーサーを選択する必要があります:

プロジェクトを選択して右クリックします。プロジェクト->プロパティ-> C/C++ビルド->設定->バイナリパーサー、PE Windowsパーサー。

つまりCygwinコンパイラを使用する場合は、Cygwinパーサーを使用する必要があります。

少なくともクロスコンパイラ(Windows 7とUbuntu 12.04の両方)ではうまくいきました。 Linuxでは、Elfパーサーを使用します。

誰かがより良い解決策を持っているなら、アドバイスしてください。

23
Nenad Bulatovic

これは私に起こり、私は解決策を見つけました、これがあなたのために働くかどうか見てください:

ハンマーアイコンを使用してプロジェクトを構築したら、次の手順を実行します。

  1. 「実行」を選択します。
  2. 実行構成。
  3. 「C++アプリケーション」を選択します。
  4. 開いているウィンドウの左上にある「新規起動構成」アイコンをクリックします。
  5. C/C++アプリケーションの下の「参照」を選択します。
  6. 最初にプロジェクトを作成したフォルダーを参照します。
  7. デバッグフォルダーに入ります。
  8. プロジェクトと同じ名前のバイナリファイルをクリックします。
  9. 「OK」を選択します。
  10. [適用]をクリックして、設定したリンクを確認します。
  11. そのウィンドウを閉じます。

その後、必要なだけプロジェクトを実行できるようになります。

うまくいけば、これはあなたのために働く。

45
nathan ael

プロジェクトを選択して、 CTRL + B

40

Macでは、上記のNenad Bulatovicのように同様の問題もある場合は、Binary Parsersを変更する必要があります。

押す Command + I プロパティを開く(またはプロジェクトを右クリックしてプロパティを選択する)

必ずMach-O 64 Parserを選択してください。

enter image description here

6
leoflower

ctrl + Bを押すと、[実行]ボタンを使用できます。

5
9113303

私の場合、これが解決策です。プロジェクトを作成するとき、ToolchainsパネルからMinGW GCCを選択します。

enter image description here

プロジェクトが作成されたら、プロジェクトファイルを選択し、ctrl + bを押してプロジェクトをビルドします。次にrunを押すと、出力がコンソールに出力されます。

3
Giorgos K

最初に、「実行構成」を含むメニューを開く小さな矢印ボタンをクリックする必要がありました、 enter image description here

次に、次のウィンドウで、「C/C++ Application」をクリックし、続いて緑色の+が付いたテキストなしのボタンをクリックする必要がありました enter image description here

その後、[適用]ボタンと[実行]ボタンを押す必要がありました enter image description here

そして、Eclipseはプログラムを実行/デバッグできます。 :)

2
hanshenrik

価値のあることには、この問題がありました-そして、原因は、選択したプロジェクトのバイナリのDWARF 3情報が無効だった(実行可能なバイナリがなかった)ことです。

動作方法は次のようなものでした。2つのプロジェクトMainLibraryがありました。 MainLibraryプロジェクトに依存しており、前者には実行可能ファイルがあり、後者には静的ライブラリ(Mainがリンクされている)が生成されただけです。

次のように、実行オプションが「実行/デバッグ->起動」に設定され、「現在の起動、それ以外の場合は最後」に設定されました(右下を参照)。

Run/Debug settings

Mainプロジェクトを選択した場合、すべてが正常に機能します。メインプロジェクトが起動します。 Libraryプロジェクトを選択していた場合1 OPによって指定されたエラーメッセージで失敗します。 Libraryプロジェクトが選択されているため、PEスキャナーはプロジェクト内のバイナリファイルをスキャンして起動可能なファイルがあるかどうかを確認し、スキャンが失敗したため これによりbug 「以前に起動したアプリケーションを起動」する前にエラーメッセージがポップアップしました。

私はそれを回避することができました:

  1. 起動したいプロジェクトが選択されていることを確認するか、...
  2. Eclipseが失敗することなく解析できるDWARF情報を作成するコンパイラーに変更するか、...
  3. 「実行/デバッグ設定」で「以前に起動したアプリケーションを常に起動する」を選択します-ただし、これはお好みの操作モードではない場合があります。

1 通常、プロジェクトを直接選択することはありません。もちろん、含まれているソースファイルの1つで作業しているため、間接的に選択されます。

1
BeeOnRope

私の経験では、プロジェクトをビルドした後(CTRL+B)、メインツールバーのRunまたはDebugドロップダウンメニューで実行(またはデバッグ)構成を作成する必要があります。次に、メインページで、

Search Project...

ボタン。

これにより、ビルドしたすべての実行可能ファイルが検索され、ダイアログボックスに表示されます。あなたは正しいものを選択してから、実行を押すことができます(または

1
tinlyx

ビルドが成功し、「Launch Binary not Found」エラーが発生した場合。次の手順を実行してください。

[実行]-> [実行構成]-> [C/C++アプリケーション]-> [project_name debug]をクリック-> [参照]をクリックしてプロジェクトファイルを選択-> [Ok-> Eclipseワークスペースに移動し、プロジェクトファイルを選択します-> 2つのファイルがあります1.デバッグ2.Src->デバッグファイルをクリックします->次に、プロジェクト名のファイルをクリックし、OKを押します)->適用をクリックします実行ボタンを押します。

これで問題が解決するはずです

1
Afroz Chakure

フォルダー名に.c拡張子が含まれていないことを確認してください。フォルダー名の.c拡張子を削除すると、自動的に機能しました。

0
shma

Eclipse 3.8.1でも同じ問題があります。私にとっては、成果物タイプを実行可能に設定するために働きました:

プロジェクトを右クリック-> C/C++ Build-> Settings-> Build Artifact-> Artifact Type:Executable

最後にプロジェクトを再構築すると、Project ExplorerにBinariesエントリが作成されました。

0
ggagliano

コードを実行するときは、MinGWコンパイラーをクリックする必要があります。これを行わないと、起動失敗バイナリが見つからないというエラーが発生します。

0
andy

ここですべてを試した後、Eclipseに実行許可を付与することでした:

cd Eclipse-installation-dir 
Sudo chmod +x Eclipse

Ubuntu 12.04 LTSでEclipse Lunaを使用します。

0
user3381196