![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
sopot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
Подскажите пожалуйста как откомпилировать С++ код (несколько файлов) просто в один кусок бинарного кода по x86 процессоры без указания операционной системы на которой код будет работать.
|
|||
|
||||
Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
Почитай хелп по Intel C++ Compiler
-------------------- ![]() |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Откомпилировать с указанием ОС, потом из исполняемого файла вырезать нужный бинарный образ. Под Linux (и не только) это делается связкой gcc + objcopy
|
|||
|
||||
sopot |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
А можно чуть подробнее, я в опциях компилятора ничего подобного не нашел.
А как совместить это с рантайм библиотекой с++, там сплошь обращения к ОС. Я правда думал, что вопрос решиться переопределением собственной версии оператора new, но не уверен что-то. |
||||
|
|||||
xvr |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Никак ![]()
Библиотеки должны быть полностью свои, или сделанные специально под embedded систему (типа uLibc) |
||||||
|
|||||||
sopot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
Ну прям беда, мне из рантайм библиотекой собственно ничего и не надо, только чтобы классы создавались и уничтожались .
Я наивно полагал, что new естественно пользует api ОС для выделения/освобождения памяти, а остальная функциональность типа поддержки виртуальных методов и т.д. от ОС ничего не требует. Мне важно только с++ код компилировать, а все остальное типа ввода-вывода и т.д. - это мой код мог бы делать. Пока видимо светит все тот же чистый Си. Печально. ![]() |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Для С++ рантайм в основном нужен для исключений и rtti. new & delete можно переопределить прямо из программы, для этого даже не нужна библиотека. Некоторые компиляторы могут использовать библиотеку для своих внутренних нужд (типа копирования структур, реализации new[] и пр, но таких все меньше и меньше). У вменяемых компиляторов (например у gcc) весь плюсовый рантайм (в урезанном виде) можно собрать самому.
|
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
sopot, интересно, зачем нужна программа, которая умеет только создавать и удалять классы? А о выводе информации ты не забыл? Ведь именно все операции с вводом и выводом лежат на плечах ОС. А без них, твоя программа лишь способствует глобальному потеплению, так как никакой пользы от ее работы получить никому не получится.
Именно поэтому не сущетсвует бинарников, которые работают одновременно под всеми ОС (java и т.п. не в счет). |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Автор обещал об этом позаботится лично ![]()
|
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
А... Ну тогда другое дело...
|
|||
|
||||
sopot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
Ну конечно не все так плохо, чтобы просто классы создавать/удалять. ![]() Библиотека вывода написана давно, ничего сложного нет ни в граф ядре используемого процессора, ни в коде. Просто требуется значительно расширить проект, отсюда и желание с++. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
sopot, какой компилятор?
|
|||
|
||||
sopot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
IAR Embedded Workbench. Проект под Cirrus Logic EP9315. Проект расширяется и переходит на AMD Geode LX 800. IAR под х86 не компилирует, а примерный размер проекта в новом варианте с Си не дружит. |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Тогда бери gcc. Toolchain можно выдрать из eCos |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |