2012-04-16 2 views
4

Я отладки C++ программе:gdb «Во время запуска программы выходят с кодом 126."

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. 

У кого-то есть идея?

ответ

6

A .o файл не является программой, это объектный файл, который необходимо связать с библиотеками для создания программы. Вы можете использовать gdb для проверки кода внутри него, но он не работает (сообщение «не может выполнить двоичный файл»). Вам нужно будет связать его, чтобы создать программу. Возможно, что-то вроде

g++ -o simplesearch simplesearch.o 

будет достаточно, но без дополнительной информации не ясно, если он нуждается в большем количестве библиотек, чем просто системная библиотека C и C++ поддержки выполнения и т.д.

+0

Да. Когда я пытаюсь запустить 'gdb simplesearch' (simplesearch - это исполняемый файл, который может запускаться как ./simplesearch). Затем gdb сообщает: «/ home/zwx/workspace/xapian/examples/simplesearch»: не в исполняемом формате: формат файла не распознан ». @geekosaur – stackunderflow

+0

Что сообщает 'файл simplesearch'? – geekosaur

+0

все еще ""/home/zwx/workspace/xapian/examples/simplesearch ": не в исполняемом формате: формат файла не распознан." – stackunderflow

Смежные вопросы