|
Компилятор С++ в С, Ищу программу! |
|
|
|
Nov 20 2008, 13:18
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692

|
Есть у меня прога, написанная на С++. Достаточно мудреная и объемная.. И есть среда, в которой нет компилятора С++, но есть полноценный С. Не подскажет ли всемогущий олл, где взять кросс-компилятор для получения С-кода из С++. Платформа - близкая к линуксу - но не совсем.. Мне тут советовали какой-то comeau компилятор - но я просто не нашел, откуда его скачать...
|
|
|
|
|
Nov 20 2008, 17:03
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692

|
Цитата(mdmitry @ Nov 20 2008, 18:48)  Полноценной переделки не получится. Классы в структуры, все методы в функции, исключений нет. Оттранслироввать просто не получится из-за идеалогической разницы в языках (IMHO). На самом деле - видиом, не так.. Вот что пишут: Цитата Depends on what you mean. If you mean, Is it possible to convert C++ to readable and maintainable C-code? then sorry, the answer is No — C++ features don't directly map to C, plus the generated C code is not intended for humans to follow. If instead you mean, Are there compilers which convert C++ to C for the purpose of compiling onto a platform that yet doesn't have a C++ compiler? then you're in luck http://www.parashift.com/c++-faq-lite/comp....html#faq-38.13
|
|
|
|
|
Nov 20 2008, 19:10
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692

|
Цитата(sergeeff @ Nov 20 2008, 20:10)  С++ можно рассматривать как расширение С. Соответственно, расширенное никогда не может быть сведено к более узкому варианту. что я могу сказать? Цитата If instead you mean, Are there compilers which convert C++ to C for the purpose of compiling onto a platform that yet doesn't have a C++ compiler? then you're in luck
|
|
|
|
|
Nov 21 2008, 06:48
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692

|
Цитата(haker_fox @ Nov 21 2008, 07:16)  А что это за "среда" в которой нет компилятора Си++? Компилятор обычно вещь самостоятельная и не зависящая от среды... Хех.. Я тоже так думал, когда ваял проект.. Есть такая среда для mips Багет - oc2000 называется.. В общем - ее разработчики принципиально не стали делать компилятор С++. Говорят - они (в отсутствии какого-то удобоваримого стандарта) не могут гарантировать качество компилятора - а потому и делать его не могут... Хотя в тайне (я так думаю) - они его уже давно сделали..  Тока - не дают его официально... Вот и приходится искать обходные пути.. Блин... To All:Так что - нету ни у кого версии компилятора Comeau ? Цитата(sergeeff @ Nov 21 2008, 03:30)  Я чего-то не понимаю. Ваши замечания с вопросительными знаками, они к чему? Типа вы уже можете конвертнуть С++ проект в С, а я по серости мозговой утверждаю, что это сделать невозможно? Хочется стать в позу обиженного? Или - с пеной у рта поспорить о чем-то? Я ведь не свое мнение привел в качестве аргумента. А привел ссылку, где утверждается, что - таки да, можно. Да - текст такого С-кода для человека вряд ли будет понятен, но все же это будет код, который при трансляции будет делать все, что заложено в С++ код. И бить себя в грудь и говорить, что я все знаю, а чего не знаю - не существует - не надо. Не может человек знать все... Априори.
|
|
|
|
|
Nov 21 2008, 06:49
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(Вовка_Бызов @ Nov 20 2008, 19:18)  Есть у меня прога, написанная на С++. Достаточно мудреная и объемная.. И есть среда, в которой нет компилятора С++, но есть полноценный С. Не подскажет ли всемогущий олл, где взять кросс-компилятор для получения С-кода из С++. Платформа - близкая к линуксу - но не совсем.. Мне тут советовали какой-то comeau компилятор - но я просто не нашел, откуда его скачать...  Самым первым С++ компилятором был CFront, написанный Б.Страуструпом в процессе разработки языка. Этот компилятор не был полнлоценным С++ компилятором - он умел только входное описание на С++ транслировать в описание на С, а оно уже скармливалось штатным С компиляторам, которых тогда уже было достаточно и неплохого качества. Т.е. по сути CFront был С++ Front-End'ом для С компиляторов, откуда и название. Вам, я понял, именно такой функционал и нужен. Можно поискать, наверняка можно найти, только вот есть один нюанс - разработка CFront закончилась давно - как только стали появлятся полноценные компиляторы, необходимость в нем отпала. Поэтому по уровню развития фич он должен на сегодняшний день сильно отставать от современных боевых С++ компиляторов. Возможность применения зависит от того, насколько глубоко использует ваша программа возможности языка. Если в ней понатолкано исключений, шаблонов, множественного наследования, то скорее всего будет засада. Кроме того, CFront может сильно отличаться в трактовке правил языка по сравенению с действующим Стандартом (Стандарт от 1998 года, а развитие CFront, AFAIR, завершилось где-то в конце 1980-х). Может, конечно, есть и современная инкарнация, но я ничего об этом не слышал. Как и о том, чтобы С++ компиляторы умели выдавать генерацию на С.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Nov 21 2008, 10:34
|
Частый гость
 
Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692

|
Цитата(Harbour @ Nov 21 2008, 11:30)  кажись в этой oc2000 заявлена поддержка POSIX и X Window - скорей всего ребята тупо используют какой-нить вариант gcc. Я бы изучил ихний "компилятор только C" и для начала попытался бы заменить его на gcc. просто попробуйте собрать g++ на данной платформе Уже была попытка. Линкер ругается на некорректный тип объектного файла... Видимо - несоответствие платформы - я использовал g++ для интеля, а тут вроде как mips...
|
|
|
|
|
Nov 21 2008, 18:04
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Вовка_Бызов @ Nov 21 2008, 12:34)  Уже была попытка. Линкер ругается на некорректный тип объектного файла... Видимо - несоответствие платформы - я использовал g++ для интеля, а тут вроде как mips... И каково имя файла самого компилятора? mips-elf-gcc? sde-gcc?
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|