gdb"在启动程序中退出代码126."

sta*_*low 8 gdb

我正在调试一个c ++程序:

gdb simplesearch.o
Run Code Online (Sandbox Code Playgroud)

然后gdb成功启动:

(gdb) Reading symbols from /home/zwx/workspace/xapian/examples/simplesearch.o...done.
Run Code Online (Sandbox Code Playgroud)

但是当我试图跑:

(gdb) run
Run Code Online (Sandbox Code Playgroud)

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.
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

gee*_*aur 8

.o文件不是一个程序,它是需要与库以产生程序被链接的对象文件.您可以使用它gdb来检查其中的代码,但它不可运行("无法执行二进制文件"消息).您需要将其链接以制作程序.可能是类似的东西

g++ -o simplesearch simplesearch.o
Run Code Online (Sandbox Code Playgroud)

就行了,但没有更多的信息,不清楚它是否需要更多的库,而不仅仅是系统C库和C++运行时支持等.