Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Конвертирование объектных файлов.  (Прочитано 27378 раз)
0 Пользователей и 1 Гость смотрят эту тему.
sh_m
Гость
« : 04-07-2003 05:50 » 

Никто не знает, есть ли какая-нибудь утилита которая конвертирует объектные файлы формата elf (обычно его использует GNU), в coff (Microsoft, раньше также использовался GNU) или omf (Borland, Watcom)? Замучился уже: почти неделю ищу. В формат elf можно конвертнуть буквально что угодно, а обрато - проблематично.
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #1 : 04-07-2003 06:05 » 

А gcc не умеет сразу в coff компилить?
И чего тебе в конечном итоге нужно. Если загрузить куда-нить, то не проще ли сразу уда грузить?
Записан

Megabyte be with you!
sh_m
Гость
« Ответ #2 : 04-07-2003 06:21 » 

Цитата: Lex
А gcc не умеет сразу в coff компилить?
И чего тебе в конечном итоге нужно. Если загрузить куда-нить, то не проще ли сразу уда грузить?


В gcc и во всем что касается GNU я пока что плоховато ориентируюсь(меньше месяца с ним работаю), по крайней мере по HELP-ерам я такой возможности не нашел. В ld вроде бы что-то похожее есть,  там можно указывать входной и выходной форматы, но с ним я опять же еще до конца не разобрался.
     Да и не компилировать мне надо: исходника как такового у меня нет, только нескольколько объектных файлов (в комплекте с *.h) из  под Линукса которые нужно слинковать под Watcom в другой операционке.  Не спорю, идея авантюрная, но все равно хочу попробовать.
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #3 : 04-07-2003 06:37 » 

Понятно. Попробую посмотреть, чего там с gcc можно сделать Улыбаюсь
Записан

Megabyte be with you!
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #4 : 04-07-2003 06:51 » 

для ld есть ключик -oformat <format>
где format должно быть что-то типа coff-i386.
Попробуй запустить ld --help. В начале он напишет какие форматы он поддерживает. возможно придется пересобрать ld для включения поддержки coff
Записан

Megabyte be with you!
sh_m
Гость
« Ответ #5 : 04-07-2003 07:11 » 

Цитата: Lex
для ld есть ключик -oformat <format>
где format должно быть что-то типа coff-i386.
Попробуй запустить ld --help. В начале он напишет какие форматы он поддерживает. возможно придется пересобрать ld для включения поддержки coff


Спасибо! Но я еще немножко понадоедаю! Теперь уж действительно элементарный вопрос. Как в ld указать, что на выходе мне нужен именно объектный файл, а не исполняемый? Да и может ли он вообще просто конвертировать объектники, а не собирать из них исполняемуе файлы? Ключик и название формата я буквально вчера нарыл, а застрял именно на этом.
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #6 : 04-07-2003 07:29 » 

Чесно говоря не знаю. Мне кажется, что ld этого не умеет.
gcc -c компилит файлы. ld эти файлы линкует в исполняемый код.

Кстати нашел еще программку objcopy конвертит файлы из одного формата в другой.

----
Мда, ld оказывается все умеет. ключик -r или --relocateable
Записан

Megabyte be with you!
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #7 : 04-07-2003 07:31 » 

Цитата
Но я еще немножко понадоедаю!

Кто говорит о надоедании - почитал бы ты как тут обсуждают - тут принято спрашивать  Ага пока не поймешь.
Записан

А птичку нашу прошу не обижать!!!
sh_m
Гость
« Ответ #8 : 04-07-2003 07:39 » 

Цитата: Гром
Цитата
Но я еще немножко понадоедаю!

Кто говорит о надоедании - почитал бы ты как тут обсуждают - тут принято спрашивать  Ага пока не поймешь.


Просто уже на нескольких форумах меня с этим вопросом хоть и вежливо, но послали. Стараюсь быть осторожным и не раздражать спецов глупыми вопросами  Улыбаюсь А вообще мне здесь (в форуме) пока что нравится.
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #9 : 04-07-2003 07:40 » 

Ну тут посылают редко и в основном хелпы читать Улыбаюсь

З.Ы. Обрати внимание - я чуть выше поправил сообщение
Записан

Megabyte be with you!
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 04-07-2003 07:41 » 

Это нужно указать для gcc, а не для ld - ld как раз линкер.
gcc -c .....

Насчет поддержки coff - у меня ld 2.11.90.0.8 и он coff не знает.
ld: supported targets: elf32-i386 a.out-i386-linux efi-app-ia32 elf32-little elf32-big srec symbolsrec tekhex binary ihex trad-core
Возможно в более свежей версии такое есть. Пока про coff есть только поддержка в gcc формата отладочной информации.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #11 : 04-07-2003 07:45 » 

RXL, если ты собираешь gcc с параметрами по умолчанию или используешь уже готовае бинарники, то скорее всего поддержки coff не будет.
В исходниках gcc и binutils есть поддержка coff. Сам не собирал, надобности не было. Да использую gcc 2.95.чего-то там.
Записан

Megabyte be with you!
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 04-07-2003 07:49 » 

2Lex:
Совершенно верно, я пользую готовые бинарники. Большие программы (типа glibc, gcc, kde, gimp) собирать весьма гиморройно - и параметров много, и сборка идет часами.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
sh_m
Гость
« Ответ #13 : 04-07-2003 07:52 » 

Цитата: Lex
Мда, ld оказывается все умеет. ключик -r или --relocateable


Сейчас у меня возможности проверить это нет, но такое сильное чувство, что это как раз то что мне надо!
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #14 : 04-07-2003 07:55 » 

Точно, собирал пару раз полностью gcc и все необходимое к нему. муторно и долго, хотя почти все параметры по умолчанию make файлы настраивают.
Только если хочешь что-нить очень специфичное, типа поддержки coff Ага, то приходится влезать в дебри параметров.
Записан

Megabyte be with you!
sh_m
Гость
« Ответ #15 : 07-07-2003 07:52 » 

Получилось. С поддержкой coff проблем к счатью не возникло (версия утилит - 2.10.1 qnx.nto, операционка - QNX NC 6.2.1 ).
А конвертировать могут и objcopy и ld  и даже strip.
Записан
sh_m
Гость
« Ответ #16 : 09-07-2003 09:06 » 

Новая проблема.
Чем отличаются форматы coff-объектников gcc и Microsoft?
Или подскажите, где взять описание формата объектного файла coff для  Microsoft. (для gcc я уже нашел)
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #17 : 09-07-2003 09:18 » 

посмотри тут http://www.wotsit.org/
Записан

Megabyte be with you!
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 09-01-2005 23:11 » 

Есть несколько более простых решений:
  • поставить MinGW (www.mingw.org), который является ничем иным, как gcc, производящем exe файлы. На нем можно прогать даже VxD-шки. понимает статические библиотеки *.a и elf объектники
    MinSYS позволяет запускать configure-скрипты
  • можно попробывать использовать CygWin, но он в этом смысле настолько избыточен, что такие вещи, как VxD компиллировать, по-моему там нельзя
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 11-01-2005 17:27 » 

Арсений, потому, что CygWin-программы требуют run-time dll, имулирующей unix-окружение - для драйверов это явно не подходит.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 12-01-2005 20:08 » new

А MinGW - нет
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines