LINUX.ORG.RU

Разработка на C/C++ в Eclipse IDE

 ,


0

0

Перевод статьи про разработку приложений на C/C++ в Eclipse. Прежде всего, статья будет полезна людям начинающего уровня. В ней рассмотрен интерфейс IDE, базовые команды при разработке на C/C++, написание простого консольного приложения и написание небольшого GTK+-приложения.

>>> Перевод



Проверено: Shaman007 ()
Ответ на: комментарий от anonymous

> Там продавался хороший учебник по разработке и отладке веб приложений в Eclipse.

"Хороший учебник" и "Разработка в IDE" -- вещи несовместные.

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

> Есть еще третий путь, самый легкий, трепаться на форумах, что лучше "писать десктоп-приложения на наиболее приспособленных для этого языках ( C++, Java)" и скромно помалкивать, что твой маленький моск асилил только их, да и то только после четвертой пересдачи зачета, остальное уже неподъемная задача даже на уровне названия ("обертон" - это зачОтное БУГАГА!). Пиши исчо! Башорг скучает. anonymous (*) (01.10.2008 13:33:03)

Если ты мне человека нормально C++ осилившего покажешь я тебе медаль дам.

cap838383
()
Ответ на: комментарий от WFrag

Re^2: Разработка на C/C++ в Eclipse IDE

> А Eclipse, весь такой монструозный, работает с вполне приемлимой реакцией. Ну запускается долго, секунд 20, ну и хрен, один раз за день пускаю.

В Эстоннннию уже провеллли интернетттттт?

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

>Он вообще-то на питоне.

Я в курсе, да. А ебилды, которые он видимо жуёт, на баше. Только мне как бы пофиг, я не вижу проблем сделать на питоне то же самое, но сильно быстрее. Не 2 минуты чтоб жевало, а секунд 5 максимум.

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

> Причем здесь IDE? Ты написал о том, что на Си++ не стоит писать десктопные приложения (с чем я согласен), а я написал, что и на Яве их тоже писать не надо.

Всё, понял о чем ты. Только какие аргументы простив Явы? Тормознутость при первом старте? - пользователю пофиг запустится первый раз программа за 0.25 или за 0.5 сек. Тормознутый GC? - ну ещё раз повторю, что если программа критична к скорости в этом месте, то да, надо юзать С++, если не критична - то Java.

> В платформу Ява встроен одноименный убогий язычок.

Чем он убогий? Единственное чего иногда не хватает - это множественного наследования или возможности более простого делегирования интерфейса. Всё остальное - ни разу не убого.

DOKA
()
Ответ на: комментарий от anonymous

> Первый - писать десктоп-приложения на наиболее приспособленных для этого языках ( C++, Java)

Не пойму только, почему С++, а не С#?

DOKA
()
Ответ на: комментарий от DOKA

>Тормознутость при первом старте? - пользователю пофиг запустится первый раз программа за 0.25 или за 0.5 сек.

Вообще-то, со скоростью старта у Java программ всё-таки плохо для десктопа и с этим сложно что-то поделать. Питон с биндингами на GWT быстрее поднимется.

WFrag ★★★★
()
Ответ на: Re^2: Разработка на C/C++ в Eclipse IDE от gaa

> А Eclipse, весь такой монструозный, работает с вполне приемлимой реакцией. Ну запускается долго, секунд 20, ну и хрен, один раз за день пускаю.

20 секунд ? Что у тебя за старье на столе стот ? . 2-3 секунды не больше

cap838383
()

Java - вский софт памяти расходует много . А скорость очень даже нормальная

cap838383
()
Ответ на: комментарий от cap838383

>Если ты мне человека нормально C++ осилившего покажешь я тебе медаль дам. cap838383 (*) (01.10.2008 13:37:40)

Поищи в дурдоме, наверняка, они там все обитают, а медаль отдай санитарам, в качестве взятки, чтобы, не дай Бог, кого-нибудь из них не выпустили. :)

anonymous
()
Ответ на: комментарий от sv75

> Правда, это тоже глупость --- на мехмате должны должны начинать с хаскеля, язык Си математикам не понятен совершено.

ага, сейчас скажи это Богачёву ;)

Joe_Bishop
()
Ответ на: комментарий от WFrag

> Самое забавное, что нет. Ноут 2.5 летней давности — старьё, по сути.

Да ты чо! Раньше железо прямое делалось и драйверы нормальные писались. А щас ты сам погляди - сетевухи убиваются софтово, памяти вечно не хватает, бсоды на каждом углу.

Gharik
()
Ответ на: комментарий от Gharik

>Да ты чо! Раньше железо прямое делалось и драйверы нормальные писались. А щас ты сам погляди - сетевухи убиваются софтово, памяти вечно не хватает, бсоды на каждом углу.

*Пошёл откапывать свой старый 8088 Robotron*

А вдруг?!

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

> Только какие аргументы простив Явы? Тормознутость при первом старте? - пользователю пофиг запустится первый раз программа за 0.25 или за 0.5 сек.

От приложения зависит, но в общем случае - не пофиг. Хотя бы чисто психологически.

> Тормознутый GC?

Ненене, Дэвид Блейн. К gc претензий нет. Принципиальная идеологическая претензия к Яве - то, что это эамкнутый мир. JVM _каждый раз_ запускается заново, с проходом JIT по всем библиотекам, повторным расходом времени и памяти. Запустить несколько Ява-приложений - с каждым запустится по JVM, ну куда это годится? Добраться из JVM к Си-библиотеке - замаешься.

> Единственное чего иногда не хватает - это множественного наследования или возможности более простого делегирования интерфейса. Всё остальное - ни разу не убого.

Я некоторое время работал на Яве, и довольно долго - на Си, Си++, Питоне, немного знаком со Схемой, Окамлем и Хаскелем. По сравнению с ними всеми, на Яве чувствуешь себя в смирительной рубашке. Я не могу точно сформулировать, чего именно не хватает Яве - свободных функций, кортежей, лямбд, вывода типов, краткого синтаксиса, но язык какой-то невыразительный. И ладно бы я один так считал - так считают многие. Т.е. для 1995г это был приемлемый язык (хотя и без "божьей искры"), но сегодня он устарел.

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

>>Если ты мне человека нормально C++ осилившего покажешь я тебе медаль дам. cap838383 (*) (01.10.2008 13:37:40)

> Поищи в дурдоме, наверняка, они там все обитают, а медаль отдай санитарам, в качестве взятки, чтобы, не дай Бог, кого-нибудь из них не выпустили. :)

Ну не все так уж плохо...

cap838383
()
Ответ на: комментарий от sv75

> "Хороший учебник" и "Разработка в IDE" -- вещи несовместные.

Вы прочитали пример так называемого снобизьма.

;)

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

>>А то вот linuxdcpp, весь такой C++-ный...

Пацталом. Для справки dcpp в конце это смесь аббревиатур dc и pp. И к c++ отношения не имеет.

>>Или emerge........

Пацтулом.

Статью прочел. Охренительно. Берем иде что весит килотонну, жрет нипадеццки и запускается 20 секунд. И РУКАМИ шаг за шагом пишем гытыкашное приложение, с мейками, инклудами и прочей ботвой. Ну и где оно здесь преимущества иде? Где построитель графического интерфейса? Чем в данном конкретном случае это повышает производительность?

Не знаю, как оно для жабакодеров, а под с/срр имхо полный отстой. Это от нотпада отличается токмо подсветкой и автодополнением.

Для справки имакс по той же схеме что и эклипс слеплен. Токо плагины на лиспе. Лисп машина на порядок шустрей жабы по определению.

>>Пишите так, чтобы не ждал.

Это, как вы заметили, повышает трудозатраты. Сиречь неэкономично.

anonymous
()
Ответ на: комментарий от anonymous

> Для справки имакс по той же схеме что и эклипс слеплен. Токо плагины на лиспе.

Вот когда Cedet достигнет уровня CDT 5.0, и будем сравнивать Emacs с Eclipse.

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

>>язык Си математикам не понятен совершено.

Речь идет о плюсах. Ежели мехмат не в состоянии прописать набор понятных для математегов классов, помогите им, слейте готовый с тырнета.

anonymous
()
Ответ на: комментарий от anonymous

>Пацталом. Для справки dcpp в конце это смесь аббревиатур dc и pp. И к c++ отношения не имеет.

Ты мне, гентушному задроту, будешь ещё рассказывать на чём linuxdcpp писан? :)

>>Или emerge........

>Пацтулом.

Ну, я не имел ввиду, что он на C++ написан, если ты об этом. Просто он тормозит и меня это раздражает. Потому что тормозит он ДО того момента, когда я могу его оставить наедине.

>Для справки имакс по той же схеме что и эклипс слеплен. Токо плагины на лиспе. Лисп машина на порядок шустрей жабы по определению.

Это сфигали? Жаба статически типизированная и легко компилится в натив. LISP — динамически типизирован и скомпилить его в натив уже сложнее, либо опциональную типизацию вводить, либо спекулятивные оптимизации.

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

>Неужели весь стандарт знает ?

Весь стандарт на память -- нет. А зачем? "человек нормально C++ осиливший" != "человек побуквенно весь стандарт помнящий". Стандарт, он на то и стандарт, чтобы к нему обращаться по мере необходимости.

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

>А то вот linuxdcpp <...> emerge

Эти программы что-то делают. linuxdcpp проверяет хэши, иногда в несколько потоков, на чём io-планировщик тупит. gcc тоже не мгновенно работает, потому что делает сложную полезную работу (файрфокс проприетарный выкидыш, не считается). А эклипс полезной работы не делает. Только поверхностный синтаксический анализ и раскрашивание plain-text в разные цвета. Это элементарые задачи и выполняться они обязаны мгновенно, любое другое поведение противоестественно.

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

Re^2: Разработка на C/C++ в Eclipse IDE

>> Причем здесь IDE? Ты написал о том, что на Си++ не стоит писать десктопные приложения (с чем я согласен), а я написал, что и на Яве их тоже писать не надо.

> Всё, понял о чем ты. Только какие аргументы простив Явы? Тормознутость при первом старте? - пользователю пофиг запустится первый раз программа за 0.25 или за 0.5 сек.


Не пофиг. Представь, что /bin/echo будет запускаться 0.5 секунды и пррочувствуй разницу.

> Тормознутый GC? - ну ещё раз повторю, что если программа критична к скорости в этом месте, то да, надо юзать С++, если не критична - то Java.


Это критично в любой программе, более сложной, нежели хелловорлд.

>> В платформу Ява встроен одноименный убогий язычок.


> Чем он убогий? Единственное чего иногда не хватает - это множественного наследования или возможности более простого делегирования интерфейса. Всё остальное - ни разу не убого.


Многословный синтаксис, отсутствие возможности создавать новые конструкции языка, завязанность на ооп, перегрузки операторов нет, нормальных замыканий нет, воды нет, роботов тоже нет...

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

> Весь стандарт на память -- нет. А зачем? "человек нормально C++ осиливший" != "человек побуквенно весь стандарт помнящий". Стандарт, он на то и стандарт, чтобы к нему обращаться по мере необходимости.

Ну к примеру какой нить тест пройти без компутера. Чтобы на работу взяли или зарплату повысили )

cap838383
()
Ответ на: комментарий от legolegs

>Эти программы что-то делают. linuxdcpp проверяет хэши, иногда в несколько потоков, на чём io-планировщик тупит.

Нет, залипает он именно на CPU. Подозреваю, что либо на отрисовке результатов поиска, либо из-за того, что при неселективном запросе его забрасывают ответами.

Но это не причина тормозить. Можно растянуть работу, можно показать часть результатов. Варианты есть.

И, кстати, у меня вообще ничего не расшарено. Я пытался шарить — так с этим его расчётом хэшей жить вообще невозможно.

>gcc тоже не мгновенно работает, потому что делает сложную полезную работу (файрфокс проприетарный выкидыш, не считается).

Речь не о gcc. А о расчете зависимостей в emerge. У меня оно calculating dependencies (я так понимаю, операция на графе в пару десятков тясяч узлов, причем сама операция затронет максимум пару сотен) делает 2 минуты. Это, блин, нифига не нормально.

>А эклипс полезной работы не делает. Только поверхностный синтаксический анализ и раскрашивание plain-text в разные цвета.

Ну конечно. Индексация 130к строк исходников самого проекта + индексация десятков мегабайт библиотек для быстрой навигации по ним (по Ctrl+клик, поиск ссылок по ctrl+shift+g, поиск по ctrl+shift+T, и.т.д) — это всё, конечно, фигня.

Плюс он ещё на ходу компилит код. Ты меняешь имя функции, сохраняешь файл, и все другие файлы, которые это затрагивает, должны быть провалидированы.

Но это для Java, конечно. Хз чего там в CDT.

>Это элементарые задачи и выполняться они обязаны мгновенно, любое другое поведение противоестественно.

А эти задачи и работают мнгновенно.

Если уж что и задумывается, так это что-нибудь типа рефаторинга.

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

> Ты его запускал хоть раз ?

Причем здесь я? Мы не меня обсуждаем. Цитирую из обсуждаемой здесь статьи:

"При создании больших проектов, среды разработки вроде Eclipse окупают себя моментально. Eclipse дает множество возможностей, таких, как автоматическое дополнение кода, свертывание кода, подсветка синтаксиса, шаблоны кода, встроенный компилятор и отладчик. В особенности он помогает людям справиться с несколькими файлами при использовании GUI, в отличие от утилит командной строки или традиционных редакторов без GUI. В конце концов, выбор инструмента для программирования всегда был связан с личными предпочтениями."

Подсветка синтаксиса, дополнеие и шаблоны кода, а также одновременное открытие нескольких файлов - это, конечно, "множество возможностей" :) А как насчет нормальной интегрированной отладки с дизассемблером и бряками по условию, которые, к тому же, не отваливаются после каждого зауска? А интуитивно-понятный дизайнер интерфейса? Или опять все на говноплагинах, которые глючат и роняют за собой всю среду?

anonymous
()
Ответ на: комментарий от anonymous

>> Жаба статически типизированная и легко компилится в натив.

>А мужики-то не знают!

Советую мужикам почитать хотя бы байт-код Java. Стек, например, там типизированный.

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

> Или опять все на говноплагинах, которые глючат и роняют за собой всю среду?

А кому сейчас легко ?

cap838383
()
Ответ на: комментарий от Atmega64

>лучше уж оригинал читать.

Лучше не читать. Жаба, плюсы, ИДЕ - мало поводов для флейма?

anonymous
()
Ответ на: комментарий от cap838383

>Ну к примеру какой нить тест пройти без компутера. Чтобы на работу взяли или зарплату повысили )

И что Вы хотели сказать этим сообщением?

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

> И что Вы хотели сказать этим сообщением?

К тому что человека, который говорит "Я знаю C++" можно легко завалить каким нить вопросом на знание стандарта )

cap838383
()
Ответ на: комментарий от WFrag

Re^2: Разработка на C/C++ в Eclipse IDE

> Если уж что и задумывается, так это что-нибудь типа рефаторинга.

Может у тебя эклипс-как то по-особенному с -D_NO_SLEEPS скомпилен? У меня он имеет привычку подвисать на время до минуты на произвольный действиях. Например, при сохранении.

gaa ★★
()
Ответ на: Re^2: Разработка на C/C++ в Eclipse IDE от gaa

>Это критично в любой программе, более сложной, нежели хелловорлд.

на жабе товарищ, пишутся такие приложения, которые крестам и не снились. кресты это костыль, убогонький недоязычок, там есть все, но по сути нету ничего. сопли про завязанность на ООП никому неинтересны. не хочешь ООП, пиши все в статических методах. глобальные говнофункции и переменные это кал, слава патрегу их не ввели в жабу.

>Многословный синтаксис, отсутствие возможности создавать новые конструкции языка, завязанность на ооп, перегрузки операторов нет, нормальных замыканий нет, воды нет, роботов тоже нет...

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

anonymous
()
Ответ на: комментарий от anonymous

>>А как насчет нормальной интегрированной отладки с дизассемблером и бряками по условию, которые, к тому же, не отваливаются после каждого зауска? А интуитивно-понятный дизайнер интерфейса? Или опять все на говноплагинах, которые глючат и роняют за собой всю среду?

Нету там ничего. Для си точно нету. Дизайнеры интерфейса - платные плагины, насколько я понял. Автодополнение чуть получше чем это реализовано имаксе. Синтаксис подсвечивать и код сворачивать может не только еклипс. В результате на экране вместо кода туева хуча окон, менюшек и кнопочек, при помощи которых вы руками пишете то же самое, что смоглим бы прописать в виме/имаксе/другом_текстовом_редакторе. Вероятно весь остальной объем кода эклипса это сборщеги мусора, которые убирают за нерадивым жабакодером то что он наваял в эклипсе. Рекурсия.

anonymous
()
Ответ на: комментарий от cap838383

>К тому что человека, который говорит "Я знаю C++" можно легко завалить каким нить вопросом на знание стандарта )

Проверьте меня. =)

Sectoid ★★★★★
()
Ответ на: Re^2: Разработка на C/C++ в Eclipse IDE от gaa

>Может у тебя эклипс-как то по-особенному с -D_NO_SLEEPS скомпилен? У меня он имеет привычку подвисать на время до минуты на произвольный действиях. Например, при сохранении.

Не, до минуты точно нету. Максимум секунд на пять при сохранении. Но вообще я специально под него GC тюнил. Например, поставил сборщик CMS, который большую часть времени работает параллельно с приложением (т.е практически не делает глобальных stop-the-world).

Типа как-то вот так:

VMARGS="-XX:MaxPermSize=128m -Xmx1024m -Xms128m -server -XX:+DoEscapeAnalysis -XX:NewRatio=4 -XX:NewSize=32m -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -Xverify:none"

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

>и шо такое возможность создавать новые конструкции языка?

Добавьте в Java новый тернарный оператор (ну, к примеру, $:) средствами самой Java.

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

>Как я это проверю ?

Никак. Придётся верить на слово;)

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

Re^4: Разработка на C/C++ в Eclipse IDE

> ...крестам....кресты это костыль, убогонький недоязычок, там есть все, но по сути нету ничего...глобальные говнофункции и переменные это кал ...жабка лучший выбор под невинды. это проверенная временем глобально надежная технология, на которой написано нехилое количество программ и самое главное библиотек, аналогичные из которых на ссах с крестиками не найдешь.

Провокатор детектед. Сиди голодный.

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

Re^4: Разработка на C/C++ в Eclipse IDE

>>Может у тебя эклипс-как то по-особенному с -D_NO_SLEEPS скомпилен? У меня он имеет привычку подвисать на время до минуты на произвольный действиях. Например, при сохранении.

> Не, до минуты точно нету. Максимум секунд на пять при сохранении. Но вообще я специально под него GC тюнил. Например, поставил сборщик CMS, который большую часть времени работает параллельно с приложением (т.е практически не делает глобальных stop-the-world).


Ага, вот оно как... Сразу и подвисания на 5(!!!!) секунд признал и допиливание эклипса рашпилем до работтоспособного состояния.

Так вот: задержка более 1/20 секунды для гуя, имеющего претензии на право называться хорошим, не лезет ни в какие ворота.

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