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 回答