9

私は C++ プログラムをデバッグしています:

gdb simplesearch.o

次に、gdb が正常に起動します。

(gdb) Reading symbols from /home/zwx/workspace/xapian/examples/simplesearch.o...done.

しかし、私が実行しようとしたとき:

(gdb) run

gdb レポート:

Starting program: /home/zwx/workspace/xapian/examples/simplesearch.o 
/bin/bash: /home/zwx/workspace/xapian/examples/simplesearch.o: cannot execute binary file
/bin/bash: /home/zwx/workspace/xapian/examples/simplesearch.o: Success
During startup program exited with code 126.

誰かがアイデアを持っていますか?

4

1 に答える 1

10

ファイルはプログラムで.oはなく、プログラムを生成するためにライブラリとリンクする必要があるオブジェクト ファイルです。その中のコードを検査するために使用できますgdbが、実行可能ではありません (「バイナリ ファイルを実行できません」というメッセージ)。プログラムを作成するには、それをリンクする必要があります。おそらく次のようなもの

g++ -o simplesearch simplesearch.o

で十分ですが、それ以上の情報がなければ、システム C ライブラリや C++ ランタイム サポートなど以外のライブラリが必要かどうかは明確ではありません。

于 2012-04-16T01:37:33.153 に答える