我正在调试一个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.
有人有想法吗?
答案 0 :(得分:8)
.o
文件不是程序,它是一个目标文件,需要与库链接才能生成程序。您可以使用gdb
检查其中的代码,但它不可运行(“无法执行二进制文件”消息)。您需要将其链接以制作程序。可能类似
g++ -o simplesearch simplesearch.o
就足够了,但没有更多的信息,不清楚它是否需要更多的库而不仅仅是系统C库和C ++运行时支持等。