Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как откомпилировать С++ код в бинарный 
:(
    Опции темы
sopot
Дата 16.5.2009, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.5.2009

Репутация: нет
Всего: нет



Подскажите пожалуйста как откомпилировать С++ код (несколько файлов) просто в один кусок бинарного кода по x86 процессоры без указания операционной системы на которой код будет работать.
PM MAIL   Вверх
Cheloveck
Дата 16.5.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 5
Всего: 32



Почитай хелп по Intel C++ Compiler


--------------------
user posted image
PM Jabber   Вверх
xvr
Дата 18.5.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Откомпилировать с указанием ОС, потом из исполняемого файла вырезать нужный бинарный образ. Под Linux (и не только) это делается связкой gcc + objcopy

PM MAIL   Вверх
sopot
Дата 18.5.2009, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.5.2009

Репутация: нет
Всего: нет



Цитата(Cheloveck @ 16.5.2009,  12:37)
Почитай хелп по Intel C++ Compiler

А можно чуть подробнее, я в опциях компилятора ничего подобного не нашел.

Цитата

Откомпилировать с указанием ОС, потом из исполняемого файла вырезать нужный бинарный образ. Под Linux (и не только) это делается связкой gcc + objcopy


А как совместить это с рантайм библиотекой с++, там сплошь обращения к ОС.
Я правда думал, что вопрос решиться переопределением собственной версии оператора new, но не уверен что-то.


PM MAIL   Вверх
xvr
Дата 18.5.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(sopot @ 18.5.2009,  20:35)
А как совместить это с рантайм библиотекой с++, 

Никак  smile 
Цитата

там сплошь обращения к ОС.
Угу
Цитата

Я правда думал, что вопрос решиться переопределением собственной версии оператора new, но не уверен что-то.
libc тоже нужна своя, так что одним new это не ограничится.
Библиотеки должны быть полностью свои, или сделанные специально под embedded систему (типа uLibc)

PM MAIL   Вверх
sopot
Дата 18.5.2009, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.5.2009

Репутация: нет
Всего: нет



Ну прям беда, мне из рантайм библиотекой собственно ничего и не надо, только чтобы классы создавались и уничтожались .
Я наивно полагал, что new естественно пользует api ОС для выделения/освобождения памяти, а остальная функциональность типа поддержки виртуальных методов и т.д. от ОС ничего не требует. Мне важно только с++ код компилировать, а все остальное типа ввода-вывода и т.д. - это мой код мог бы делать.

Пока видимо светит все тот же чистый Си. Печально. smile 
PM MAIL   Вверх
xvr
Дата 18.5.2009, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(sopot @ 18.5.2009,  21:04)
Ну прям беда, мне из рантайм библиотекой собственно ничего и не надо, только чтобы классы создавались и уничтожались .
Я наивно полагал, что new естественно пользует api ОС для выделения/освобождения памяти, а остальная функциональность типа поддержки виртуальных методов и т.д. от ОС ничего не требует. Мне важно только с++ код компилировать,

Для С++ рантайм в основном нужен для исключений и rtti. new & delete можно переопределить прямо из программы, для этого даже не нужна библиотека. Некоторые компиляторы могут использовать библиотеку для своих внутренних нужд (типа копирования структур, реализации new[] и пр, но таких все меньше и меньше). 
У вменяемых компиляторов (например у gcc) весь плюсовый рантайм (в урезанном виде) можно собрать самому.
Цитата

Пока видимо светит все тот же чистый Си. Печально. smile
Отнюдь. Ведь пишут embedded приложения на С++, можно посмотреть на eCos к примеру

PM MAIL   Вверх
bsa
Дата 18.5.2009, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



sopot, интересно, зачем нужна программа, которая умеет только создавать и удалять классы? А о выводе информации ты не забыл? Ведь именно все операции с вводом и выводом лежат на плечах ОС. А без них, твоя программа лишь способствует глобальному потеплению, так как никакой пользы от ее работы получить никому не получится.
Именно поэтому не сущетсвует бинарников, которые работают одновременно под всеми ОС (java и т.п. не в счет).
PM   Вверх
xvr
Дата 18.5.2009, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(bsa @ 18.5.2009,  22:07)
sopot, интересно, зачем нужна программа, которая умеет только создавать и удалять классы? А о выводе информации ты не забыл? 

Автор обещал об этом позаботится лично  smile 
Цитата

Ведь именно все операции с вводом и выводом лежат на плечах ОС. 
В порядке телепатии - у автора embedded приложение, т.е. ОСа там как такового нет.


PM MAIL   Вверх
bsa
Дата 18.5.2009, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



А... Ну тогда другое дело...
PM   Вверх
sopot
Дата 18.5.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.5.2009

Репутация: нет
Всего: нет



Цитата(bsa @ 18.5.2009,  22:07)
sopot, интересно, зачем нужна программа, которая умеет только создавать и удалять классы? А о выводе информации ты не забыл? Ведь именно все операции с вводом и выводом лежат на плечах ОС. А без них, твоя программа лишь способствует глобальному потеплению, так как никакой пользы от ее работы получить никому не получится.
Именно поэтому не сущетсвует бинарников, которые работают одновременно под всеми ОС (java и т.п. не в счет).

Ну конечно не все так плохо, чтобы просто классы создавать/удалять.  smile 
Библиотека вывода написана давно, ничего сложного нет ни в граф ядре используемого процессора, ни в коде. 
Просто требуется значительно расширить проект, отсюда и желание с++.
PM MAIL   Вверх
bsa
Дата 18.5.2009, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



sopot, какой компилятор?
PM   Вверх
sopot
Дата 18.5.2009, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.5.2009

Репутация: нет
Всего: нет



Цитата(bsa @ 18.5.2009,  23:04)
sopot, какой компилятор?

IAR Embedded Workbench. Проект под Cirrus Logic EP9315.
Проект расширяется и переходит на AMD Geode LX 800.
IAR под х86 не компилирует, а примерный размер проекта в новом варианте с Си не дружит.
PM MAIL   Вверх
xvr
Дата 19.5.2009, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(sopot @ 18.5.2009,  23:37)
Цитата(bsa @ 18.5.2009,  23:04)
sopot, какой компилятор?

IAR Embedded Workbench. Проект под Cirrus Logic EP9315.
Проект расширяется и переходит на AMD Geode LX 800.
IAR под х86 не компилирует, а примерный размер проекта в новом варианте с Си не дружит.

Тогда бери gcc. Toolchain можно выдрать из eCos

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0786 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.