LINUX.ORG.RU

g++ SomeFile.cpp -o test.o && objdump test.o -d

 , ,


0

1

objdump: test.o: File format not recognized

Каковы могут быть причины?

Сорцы дать не могу:( Над минимально воспроизводимым примером - работаю.

Остальные файлы собранные этим компилём с тем же набором флагов - дают валидные обьектники.

uname -a
Linux hostname 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
#кароче редхат 5ый на обновах

g++44 --version

g++44 (GCC) 4.4.7 20120313 (Red Hat 4.4.7-1)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

uname -a

Вот такая вот бодяга, мало ли кто ступал на эти грабли?

Ну и да ессно эта хрень не влинковывается в итоге, точнее влинковывается, но символов из того файла - невидать.

★★★★★

Дай угадаю: g++ и binutils собраны для разных архитектур. Можешь через file test.o посмотреть под какую архитектуру собирается бинарник.

kim-roader ★★
()
Ответ на: комментарий от kim-roader

архитектура - точно одна и таже. Более того, мой невнимательный друг - ещё порядка 2к обьектников были собранны без этого косяка.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

хотя не про 2к я, наверное, загнул, завтра посчитаю сколько их там интереса для, но это не важно.

Обьектники одной из либ(около 20), собираемые в одной папке, с одинаковыми флагами, одним и тем же компилём. И один из них содержит сей забавный изъян. Остальные корректно показываются objdump'ом и nm.

pon4ik ★★★★★
() автор топика

Если он не понимает объектник, то ему нужно явно указать

>objdump --help
...
-b, --target=BFDNAME           Specify the target object format as BFDNAME
-m, --architecture=MACHINE     Specify the target architecture as MACHINE

...
Для просмотра значений этих параметров:
objdump -i

energyclab
()
Последнее исправление: energyclab (всего исправлений: 1)
Ответ на: комментарий от energyclab

Ларчик просто открывался - objdump был чуть более старой версии, чем тот, который требовался к более новому gcc.

pon4ik ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.