Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > gcc vs msvc


Автор: Lazin 11.2.2008, 12:34
Я за компилятор M$. Он хоть не очень строго следует стандарту, но работает явно лучше, компилирует быстрее, оптимизация лучше (есть ли возможность с gcс использовать http://www.google.ru/url?sa=t&ct=res&cd=1&url=http%3A%2F%2Fmsdn2.microsoft.com%2Fen-us%2Flibrary%2Fe7k32f4k(VS.80).aspx&ei=exWwR6_0OZmSwQGgj5l7&usg=AFQjCNEU2xD3UcVrywQcV-tBPxJlYolozw&sig2=-oc4Eyakin5U7ThSxM7yDA). Те отступления от стандарта, которые есть, не ограничивают возможностей компилятора (как в случае с компилятором фирмы borland), а наоборот позволяют больше чем нужно. smile 
к тому-же оптимизация кода на уровне компоновщика есть только у msvc

Автор: MAKCim 11.2.2008, 13:08
Цитата(Lazin @  11.2.2008,  12:34 Найти цитируемый пост)
но работает явно лучше

не аргумент
вообще абстрактная фраза
без аргументации незачет
Цитата(Lazin @  11.2.2008,  12:34 Найти цитируемый пост)
компилирует быстрее

примеры в студию
иначе голословно
Цитата(Lazin @  11.2.2008,  12:34 Найти цитируемый пост)
оптимизация лучше (есть ли возможность с gcс использовать Profile-Guided Optimizations)

есть
Цитата(Lazin @  11.2.2008,  12:34 Найти цитируемый пост)
Те отступления от стандарта, которые есть, не ограничивают возможностей компилятора

какая связь между стандартом и оптимизацией?
Цитата(Lazin @  11.2.2008,  12:34 Найти цитируемый пост)
к тому-же оптимизация кода на уровне компоновщика есть только у msvc 

причем здесь GCC?
в чем конкретно состоит оптимизация кода на уровне компоновщика?
компоновщик, вообще говоря, с кодом не работает и ничего про него не знает
это так, к слову  smile 

Автор: Void 11.2.2008, 13:24
Цитата(MAKCim @  11.2.2008,  15:08 Найти цитируемый пост)
в чем конкретно состоит оптимизация кода на уровне компоновщика?

Google link-time optimization

Автор: MAKCim 11.2.2008, 13:31
Цитата(Void @  11.2.2008,  13:24 Найти цитируемый пост)
Google link-time optimization 

ты про http://llvm.org/?
но это уже не совсем компоновка

Автор: Lazin 11.2.2008, 13:36
Цитата(MAKCim @  11.2.2008,  13:08 Найти цитируемый пост)
какая связь между стандартом и оптимизацией?

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

Цитата(MAKCim @  11.2.2008,  13:08 Найти цитируемый пост)
в чем конкретно состоит оптимизация кода на уровне компоновщика?
компоновщик, вообще говоря, с кодом не работает и ничего про него не знает

есть такие вещи как Link-time Code Generation и Whole Program Optimization  smile 

Цитата(MAKCim @  11.2.2008,  13:08 Найти цитируемый пост)
компилирует быстрее

примеры в студию
иначе голословно

можно попробовать поискать в интернете тесты, я сам одно время пользовался gcc (MinGW) для сборки одного проекта, при переходе на visual studio 8 скорость компиляции заметно возросла, причем даже не "заметно" а на порядок))

Автор: Void 11.2.2008, 13:36
Я не только про LLVM (кстати, есть llvm-gcc — порт с фротнэндом gcc и бэкэндом LLVM), LTO умеют ICC, MSVC, возможно ещё какие-то компиляторы.
Цитата(MAKCim @  11.2.2008,  15:31 Найти цитируемый пост)
но это уже не совсем компоновка 

Тем не менее, принято называть именно так.

Автор: Lazin 11.2.2008, 13:40
Цитата(Lazin @  11.2.2008,  12:34 Найти цитируемый пост)
Те отступления от стандарта, которые есть, не ограничивают возможностей компилятора (как в случае с компилятором фирмы borland), а наоборот позволяют больше чем нужно. smile 

Вот http://forum.vingrad.ru/forum/topic-193925/kw-template-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD-%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D0%B0%D1%8F-%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F.html недавно обсуждали пример, который может служить иллюстрацией. VS компилирует не правильный код, gcc не компилирует. 

Автор: MAKCim 11.2.2008, 13:42
Цитата(Void @  11.2.2008,  13:36 Найти цитируемый пост)
Тем не менее, принято называть именно так. 

ну допустим
в итоге все равно аргумент Lazin разбит
Цитата(Lazin @  11.2.2008,  13:36 Найти цитируемый пост)
я здесь не об этом, а о том, что msvc не нарушает стандарт так, что-бы что-то не компилировалось.

ну и?
приведи примеры того, как можно нарушить стандарт, добиться успешной компиляции и получить при этом оптимизацию
возможно, примеры есть, но я сходу придумать не могу
Цитата(Lazin @  11.2.2008,  13:36 Найти цитируемый пост)
можно попробовать поискать в интернете тесты

вот и поищи
иначе разговор неконструктивен

Добавлено через 4 минуты и 21 секунду
Цитата(Lazin @  11.2.2008,  13:40 Найти цитируемый пост)
Вот здесь недавно обсуждали пример, который может служить иллюстрацией. VS компилирует не правильный код, gcc не компилирует.  

я не понимаю, в чем здесь у MSVC преимущество?

Автор: JackYF 11.2.2008, 18:29
Внесу аргумент в спор: GCC, согласно http://en.wikipedia.org/wiki/GNU_Compiler_Collection#Architectures, поддерживает 43 архитектуры официально (ещё 9 штук - неофициально), среди них powerpc (ppc), arm, m86k, alpha, armel, ia64, sparc, mips. 

MSVS поддерживает, согласно http://en.wikipedia.org/wiki/Visual_C_Plus_Plus, помимо ia32, x86_64 и ia64, да и то - со скрипом, подробности, на этой же странице.

Gcc умеет компилить как минимум под: GNU/Linux, *BSD, Windows(mingw, частично), mac.
MSVS - только линейка windows.

Вывод: MSVS - нерасширяемое [censored33! Пожалуйста, соблюдайте элементарные правила приличия при общении на форуме].

Автор: nerezus 21.2.2008, 22:13
Размер откомпиленного файла.
У gcc больше раза в 4.

Пример: KDE4(версия для винды).

Автор: nickless 21.2.2008, 22:37
Цитата(nerezus @  21.2.2008,  20:13 Найти цитируемый пост)
Размер откомпиленного файла.

Какого именно и как скомпилированного? smile 

Автор: MAKCim 21.2.2008, 22:49
Цитата(nerezus @  21.2.2008,  22:13 Найти цитируемый пост)
Размер откомпиленного файла.
У gcc больше раза в 4.

присоединяюсь к вопросу 
nickless, 

Автор: nerezus 21.2.2008, 23:01
118 против 293
KDE4 для винды. набор пакетов


Для примера:
kdebase-mingw-3.97.20071231-bin.tar.bz2 85.7мб
kdebase-msvc-3.97.20071231-bin.tar.bz2 37.3мб

Автор: kamre 30.3.2008, 08:14
MinGW, который при установки Qt скачивается и ставится, уж абсолютно точно сливает полностью MSVC 2005: собирает Qt дольше раза в 2-3, и размер скомпиленного почти в три раза больше.

Автор: Любитель 31.3.2008, 02:49
По скорости компиляции ИМХО гцц проигрывает, но msvc давное не видел - фиг его как там у него щас smile

По "платформенности". Вообщем, msvc де-факто стандартный компилер для винды, гцц для всего остального (ну... почти мб).

Цитата(JackYF @  11.2.2008,  18:29 Найти цитируемый пост)
MSVS - нерасширяемое [censored33! Пожалуйста, соблюдайте элементарные правила приличия при общении на форуме].

Просто MS не заинтересованы в vc для не-винды. А так, возможно ли это (всмысле насколько просто) - мы не можем судить smile

Цитата(Lazin @  11.2.2008,  12:34 Найти цитируемый пост)
Те отступления от стандарта, которые есть, не ограничивают возможностей компилятора (как в случае с компилятором фирмы borland), а наоборот позволяют больше чем нужно.

 smile 

ЗЫ интел рулит smile 

Автор: Lazin 31.3.2008, 08:08
Цитата(Любитель @  31.3.2008,  02:49 Найти цитируемый пост)
 smile 

например можно не всегда писать typename и компилятор проглотит (при этом выдаст предупреждение, что использовано нестандартное расширение), или вложенный шаблон
вместо
Foo::template bar<>....
можно просто написать
Foo::bar<>....

где Foo это какой-то класс а bar вложенный в него шаблонный класс...

ps
это наверное не есть хорошо  smile 

Автор: Любитель 1.4.2008, 15:48
Ну... Это расширение, а не отступление от стандарта smile В гцц тоже полно расширений.

Автор: archimed7592 3.4.2008, 11:55
После того как Qt-OSE стала без каких-либо хаков доступна для MSVC я стал больше склоняться именно к MSVC... Наверное не потому что "быстрее, лучше и т.п.", а потому что она говтовенька: только установи - и тебе редактор с хорошей подсветкой(VAssist) и отладчик и профилировщик и чё только хош... Это я в том плане, что MSVC хороша как IDE. Как tool-chain, боюсь, что она проиграет GNU-шному почти по всем аспектам, но... мне лишний такт процессора не жалко smile.

Просто, когда я пользовался GCC, я почти забыл что такое JIT отладка, что такое code-comlete, class-view и проч. вкусности только лишь потому, что не нашёл нормальной IDE под этот тулчайн. Всё какое-то "недо"рабочее, всё, что сложнее хэловорлда не работает и т.д.
Я так скажу: GCC хорош при разработке под *nix... MSVC - под виндой.

Автор: MAKCim 3.4.2008, 16:20
Цитата(archimed7592 @  3.4.2008,  11:55 Найти цитируемый пост)
Я так скажу: GCC хорош при разработке под *nix... MSVC - под виндой. 

да

Автор: Любитель 4.4.2008, 12:57
Скучный у вас холивар  smile 

Автор: JackYF 4.4.2008, 17:06
Цитата(Любитель @  4.4.2008,  11:57 Найти цитируемый пост)
Скучный у вас холивар  smile

Подбрось дровишек smile

Автор: MAKCim 4.4.2008, 20:19
компоновщик MSVC умеет создавать нативные бинарные файлы вне формата PE?

Автор: JackYF 4.4.2008, 23:02
Цитата(MAKCim @  4.4.2008,  19:19 Найти цитируемый пост)
компоновщик MSVC умеет создавать нативные бинарные файлы вне формата PE? 

нет smile пролистни предыдущую страницу, у меня этот аргумент уже был smile

Автор: Любитель 5.4.2008, 02:20
Цитата(MAKCim @  4.4.2008,  20:19 Найти цитируемый пост)
компоновщик MSVC умеет создавать нативные бинарные файлы вне формата PE?

А что тогда? Учитывая что кроме Win/WinCE ему ничо не надо?

Добавлено через 11 минут и 16 секунд
Цитата(archimed7592 @  3.4.2008,  11:55 Найти цитируемый пост)
я почти забыл что такое JIT отладка, что такое code-comlete, class-view и проч.

JIT-отладка - эт когда приложение крашнулось и ты его отлаживаешь? smile Или я не в теме?

Всё остальное _названное_ - меня отлично эклипс устраивает. Из минусов навскидку (не вообще - а по сравнению с MSVC) - родная его билд-система (для небольших ведь проектов, согласитесь, удобней при юзание ИДЕ юзать родную билд-систему) недоделанная. По сравнению с VC++ 2005 и *.rule-файлами. Комплит есть, оутлайн есть. Проч. - о чём речь? Кстати, если интересно - прочитай ревью CDT 5.0 (к лету обещают). Мне так оч понравилось smile

Цитата(archimed7592 @  3.4.2008,  11:55 Найти цитируемый пост)
Это я в том плане, что MSVC хороша как IDE.

Вообще, если посмотреть как развивается MSVS (как ИДЕ) для шарпа/вб или плюсов... Хочется сказать, что именно MSVC (как иде) застряла...

Профайлеры... С меня valgrind хватает. Особо критичным чем-то в этом плане просто не занимался smile

Оптимизация... Фиг его. Меня мало волнует smile

Скорость сборки - если честно, не нравится больше всего. Можно потестить что-нить на базе boost::spirit, boost::lambda и пр., что _должно_ собираться подольше smile Я считаю, что msvc выиграет. Прилично причём. Но... конкретику немного интересно было бы увидеть smile

Цитата(archimed7592 @  3.4.2008,  11:55 Найти цитируемый пост)
Как tool-chain, боюсь, что она проиграет GNU-шному почти по всем аспектам, но... мне лишний такт процессора не жалко

А эт чо-т не понял... О чём речь?

Автор: MAKCim 5.4.2008, 11:38
Цитата(Любитель @  5.4.2008,  02:20 Найти цитируемый пост)
А что тогда?

слив по функционалу

Автор: archimed7592 5.4.2008, 11:55
Цитата(Любитель @  5.4.2008,  02:20 Найти цитируемый пост)
JIT-отладка - эт когда приложение крашнулось и ты его отлаживаешь? smile Или я не в теме?

JIT расшифровывается just in time... Эт когда можно бряк поставить, step-in/over/out сделать, run to cursor, watch и т.д. - т.к. gdb постоянно зависал и падал мне пришлось перейти к отладке в виде анализа логов.

Цитата(Любитель @  5.4.2008,  02:20 Найти цитируемый пост)
Комплит есть, оутлайн есть.

Комплит не работает, аутлайн не работает(в большом кол-ве случаев).

Цитата(Любитель @  5.4.2008,  02:20 Найти цитируемый пост)
Профайлеры... С меня valgrind хватает. Особо критичным чем-то в этом плане просто не занимался smile

valgrind - это вроде memory-leeks отлавливать? Ну, даже если это профайлер - не суть важно, ибо ты не заметил ключевую фразу в моём посте: она готовенькая - установи и работай.

Цитата(Любитель @  5.4.2008,  02:20 Найти цитируемый пост)
А эт чо-т не понял

Ну, как набор компилятор + компоновщик + ... + система сборки(вместе называемое тулчайном - термин из того же эклипса smile) MSVC выйграет разве что в скорости сборки.

Автор: mr.DUDA 5.4.2008, 12:16
До кучи, edit-and-continue (/ZI) очень удобная вещь, не нужно сто раз перекомпилировать код, почти всё можно отредактировать не выходя из отладчика.

Автор: JackYF 5.4.2008, 13:34
Цитата(archimed7592 @  5.4.2008,  10:55 Найти цитируемый пост)
valgrind - это вроде memory-leeks отлавливать?

и не только.

Цитата(archimed7592 @  5.4.2008,  10:55 Найти цитируемый пост)
она готовенькая - установи и работай.

эээ... ну вот valgrind установил и тоже работаю. Разница?

Автор: Любитель 5.4.2008, 13:43
Цитата(archimed7592 @  5.4.2008,  11:55 Найти цитируемый пост)
JIT расшифровывается just in time... Эт когда можно бряк поставить, step-in/over/out сделать, run to cursor, watch и т.д. - т.к. gdb постоянно зависал и падал мне пришлось перейти к отладке в виде анализа логов.

Понятно. Давным-давно глюки были. Сейчас вроде проблем нет. Правда речь про никсовый гдб (и экипсовый форнтенд). За виндовый  не ручаюсь smile

Цитата(archimed7592 @  5.4.2008,  11:55 Найти цитируемый пост)
Комплит не работает, аутлайн не работает(в большом кол-ве случаев).

Работает. Всегда. Обещают развивать (новые возможности комплита - вроде инклюд-заголовков, улучшение сканера и пр.).

Цитата(archimed7592 @  5.4.2008,  11:55 Найти цитируемый пост)
valgrind - это вроде memory-leeks отлавливать?

Нет - это много чего: http://valgrind.org/info/tools.html

Цитата(archimed7592 @  5.4.2008,  11:55 Найти цитируемый пост)
она готовенькая - установи и работай

Готовенький профайлер в студии вроде только в тим-эдишн и то какой-то слабенький. Всё равно что-то стороннее юзать. Или я что-то упустил?

Цитата(archimed7592 @  5.4.2008,  11:55 Найти цитируемый пост)
Ну, как набор компилятор + компоновщик + ... + система сборки

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

Компоновщик - во вторую ))

Система сборки - чем так nmake, vcbuild не угодили? Я бы не сказал (да простят меня...) что GNU Make радикально лучше. Юзаю waf преимущественно. smile Иногда qmake, иногда Eclipse MBS.

Цитата(archimed7592 @  5.4.2008,  11:55 Найти цитируемый пост)
MSVC выйграет разве что в скорости сборки.

А в чём проиграет? smile Если учитывать, что ему плевать на "невинду".

Цитата(mr.DUDA @  5.4.2008,  12:16 Найти цитируемый пост)
edit-and-continue (/ZI) очень удобная вещь, не нужно сто раз перекомпилировать код, почти всё можно отредактировать не выходя из отладчика.

Ну... Не стоит преувеличивать... Но да - удобно. Факт. А в гцц точно ничо такого нет?

Добавлено через 27 секунд
Цитата(JackYF @  5.4.2008,  13:34 Найти цитируемый пост)
эээ... ну вот valgrind установил и тоже работаю. Разница?

 smile 

Автор: archimed7592 5.4.2008, 14:17
Цитата(JackYF @  5.4.2008,  13:34 Найти цитируемый пост)
эээ... ну вот valgrind установил и тоже работаю. Разница?

1. Найти.
2. Установить.
3. Разобраться как, в каком порядке и с какими аргументами запускать и т.д.

                        vs

Тыкнул в менюшку и профилирую на здоровье. Правда, как заметил Любитель, только тим... хотя, возможно, что есть в про.

Цитата(Любитель @  5.4.2008,  13:43 Найти цитируемый пост)
Работает. Всегда.

Жму ctrl+space - в 90% случаев не получаю ничего, в 5% - получаю не то, что нужно, в оставшихся 5% - да, работает. Мне казалось, что в целом эта картина называется "не работает" smile 



Цитата(Любитель @  5.4.2008,  13:43 Найти цитируемый пост)
А в чём проиграет? smile

В функционале, широте применения и т.д.
Как кто-то когда-то сказал: "линукс - это IDE для GCC"... комментарии излишни.

p.s. Я чё т не врублюсь, Любитель, ты на какой стороне? Или ты по совету Джекифа решил дровишек подбросить? smile

Добавлено через 1 минуту и 46 секунд
Цитата(mr.DUDA @  5.4.2008,  12:16 Найти цитируемый пост)
До кучи, edit-and-continue (/ZI) очень удобная вещь, не нужно сто раз перекомпилировать код, почти всё можно отредактировать не выходя из отладчика. 

Она разве для цпп работает?

Автор: Любитель 5.4.2008, 15:07
Цитата(archimed7592 @  5.4.2008,  14:17 Найти цитируемый пост)
Она разве для цпп работает?

Ещё с 6-ой студии smile Для шарпа AFAIK с 2005-ой (я про эдит энд континуе).

Цитата(archimed7592 @  5.4.2008,  14:17 Найти цитируемый пост)
Жму ctrl+space - в 90% случаев не получаю ничего, в 5% - получаю не то, что нужно, в оставшихся 5% - да, работает. Мне казалось, что в целом эта картина называется "не работает"

Ну, честно сказать, сколько видел автокомплитов дял плюсов - идеального ничего не видел (по сравнению с ява + эклипс или шарп + VS). Но эклипсовский автокомплит студийному явно не проигрывает... Можно, конечно, заняться конкретными примерами, но стоит ли? smile Тем более, как я говорил выше - эклипс развивается. Студия (для плюсов) не особо...

Цитата(archimed7592 @  5.4.2008,  14:17 Найти цитируемый пост)
В функционале, широте применения и т.д.

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

Цитата(archimed7592 @  5.4.2008,  14:17 Найти цитируемый пост)
 Я чё т не врублюсь, Любитель, ты на какой стороне?

А фиг его знает ))) Если говорить про ИДЕ - я выбираю эклипс. Уже сейчас он даёт некторые вещи, отсутствующие в студии и он перспективней (в плане плюсов). Эклипс AFAIK поддерживает msvc как компилер - но без дебага (что есть огромнейший минус...). Как компилер - тут интересней. Если не винда - сомнений нет. Винда - я больше склоняюсь к msvc, ибо он (a) быстрей собирает и (b) "родной" (меньше тупых проблем с бинарной несовместимостью с готовыми либами и пр.). Но он не интегрируется нормально в эклипс. Потому ещё один вариант - icc smile Если у него с эклипс-дебагом нормально под виндой - то это почти мой выбор. Почему почти? Цена хотя б smile Да и некоторые вещи напротив (портированные с никсов) собираются только под МинГВ, а не msvc. Вот.

PS А вообще я за справедливость!!!

Цитата(archimed7592 @  5.4.2008,  14:17 Найти цитируемый пост)
Или ты по совету Джекифа решил дровишек подбросить?

Ну и эт тоже  smile 

Автор: archimed7592 5.4.2008, 15:18
Цитата(Любитель @  5.4.2008,  15:07 Найти цитируемый пост)
сколько видел автокомплитов дял плюсов

Посмотри в сторону VisualAssistX - комплит как у шарпа(это помимо того, что он разукрашивает код, лучше чем в шарпе... правда шарп он тоже разукрашивает неплохо).

Цитата(Любитель @  5.4.2008,  15:07 Найти цитируемый пост)
В функционале - можно точней?

Эмм... Я тебе навскидку не скажу, но точно помню, что были вещи, которые в *nix делались лёгким движением руки, тогда как в винде это либо сделать невозможно, либо нужно много напрягаться.


Цитата(Любитель @  5.4.2008,  15:07 Найти цитируемый пост)
Ну и эт тоже 

Не, так не интересно... smile 

Автор: Любитель 5.4.2008, 16:05
Цитата(archimed7592 @  5.4.2008,  15:18 Найти цитируемый пост)
Посмотри в сторону VisualAssistX - комплит как у шарпа(это помимо того, что он разукрашивает код, лучше чем в шарпе... правда шарп он тоже разукрашивает неплохо).

Когда-т давно видел. Во времена 6-ой студии... Что сейчас - фиг его. Будет винда/студия/VA - мож и гляну smile

Цитата(archimed7592 @  5.4.2008,  15:18 Найти цитируемый пост)
Не, так не интересно... 

Эт почему? А зачем же тогда холивары нужны? smile Кстати - в голосовалке я не отметился.

Автор: Lazin 6.4.2008, 22:15
что мне никогда не нравилось в эклипсе (раз уж начали про IDE), так это то, что CDT толком не работает, отладчик MinGW - gdb постоянно падает, короче одним словом, это все не работает "из коробки" как VS, мне не танцами с бубном нужно заниматься а работой, поэтому я выбираю не Open Source ПО, а ПО которое работает  smile 

кстати на Windows 2003 Server у меня при попытке запустить отладчик, еклипс страшно ругался, не помню на что, в общем, там вообще ничего не работало, а допиливать напильником фанатизма не хватило... так-то  smile 


Автор: Любитель 6.4.2008, 22:38
Цитата(Lazin @  6.4.2008,  22:15 Найти цитируемый пост)
 отладчик MinGW - gdb постоянно падает

ИМХО - это скорей претензии к виндовому порту гдб, чем к цдт. Насчёт остального "из коробки" - уже вроде обсудили smile

Автор: archimed7592 6.4.2008, 22:58
Цитата(Lazin @  6.4.2008,  22:15 Найти цитируемый пост)
кстати на Windows 2003 Server у меня при попытке запустить отладчик, еклипс страшно ругался, не помню на что, в общем, там вообще ничего не работало

Ну насчёт этого - я никакой разницы между w2k3 и wxp не заметил - работало в обоих случаях одинаково плохо smile 

Автор: Любитель 6.4.2008, 23:15
Так. Вопрос такой виндовый гдб  без эклипса нормально пашет?

Автор: JackYF 6.4.2008, 23:47
Цитата(Любитель @  6.4.2008,  22:15 Найти цитируемый пост)
Вопрос такой виндовый гдб  без эклипса нормально пашет?

Не знаю, у меня на mingw (code::blocks) в своё время нареканий не было smile

Автор: Любитель 7.4.2008, 00:23
Надо потестить...

Автор: Lazin 7.4.2008, 07:49
Нажимаю F11 и
Цитата(Eclipse)

Error: dll starting at 0x77d41000 not found.


Добавлено через 4 минуты и 10 секунд
меня одного раздражают эти непонятные банеры?

Автор: Lazin 7.4.2008, 14:12
иногда мне кажется что M$VS умнее меня :'(
я еще функцию не закончил писать, а она уже за меня все решила =)
http://ipicture.ru/Gallery/Viewfull/1243328.html
функции с таким именем у меня в проекте небыло...

Автор: nickless 7.4.2008, 23:14
Кину камень в сторону еклипсы, эдитор (сам эдитор) там - хуже чем отстой, по фичам находится на уровне notepad-а, разве что код форматировать помогает, а так... 
Хачу vim в еклипсе smile 

Автор: Lazin 8.4.2008, 07:46
для студии есть addon добавляющий режимы vi но он платный.
и работает она не в зуб ногой... очень неудобно, когда у тебя выскакивает окошко inteliscense ты нажимаешь esc и тебя выбрасывает в нормальный режим опыт показывает что без него лучше чем с ним =)

Автор: Любитель 8.4.2008, 12:21
nickless, а что _именно_ ты хочешь от эдитора?
Мож я идиот - но привык к стандарт-стайл эдиторам...

Автор: JackYF 8.4.2008, 17:31
Цитата(nickless @  7.4.2008,  22:14 Найти цитируемый пост)
Хачу vim в еклипсе

и я, и я. Я вообще был бы не против vim'а в чём-нибудь. Но эти студии доиграются  smile. В конце концов я на виме буду вообще всё писать и мне станет пофиг smile

Добавлено через 16 секунд
Цитата(Любитель @  8.4.2008,  11:21 Найти цитируемый пост)
nickless, а что _именно_ ты хочешь от эдитора?

vim он хочет. И я его понимаю smile

Автор: archimed7592 8.4.2008, 18:27
Клуб фанатов вима smile. А есть где-нибудь руководство "vim для чайников"? А то вижу как у вас глаза горят при упоминании этого наименования и аж завидно smile.

Автор: nickless 8.4.2008, 20:25
Цитата(Любитель @  8.4.2008,  11:21 Найти цитируемый пост)
nickless, а что _именно_ ты хочешь от эдитора?

Как минимум макросы. Во всех нормальных (если кто не знает, в мире их всего 2 smile ) эдиторах они есть и здорово ускоряют процесс. Они есть даже в VS и BDS, а в eclipse уже 2 (!) года висит баг с просьбой добавить хотя бы простые макросы, и ни какого прогресса smile 

Еще я хочу удобства, простые программисткие удобства. В vim-e они есть, он для этого сделан, после привыкания к нему отвыкать ужасно не хочется. Возможно это звучит странно для тех, кто привык к более убогим эдиторам, но это так. Точно такое же чувство у меня возникает, когда после долгого использования линукса запускаю винду, или bash после zsh, но это уже флейм

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

В vim-е любая операция по удалению копирует удалённый текст, и его можно вставить в другом месте. Это удобно! Не нужно специально копировать или вырезать его, он всегда там.

Где в этом эдиторе блок-модус? Как переходить не только между {}, () и методами, но и между /* */? Как удалять текст в () {} [] /* */ "" ? Этот список можно продолжать бесконечно.
И это я еще и 10% возможностей вима не знаю smile 

Цитата(Любитель @  8.4.2008,  11:21 Найти цитируемый пост)
Мож я идиот - но привык к стандарт-стайл эдиторам... 

Vim используют не (только) потому что он модальный, а потому, что он функциональный.

Цитата(JackYF @  8.4.2008,  16:31 Найти цитируемый пост)
В конце концов я на виме буду вообще всё писать

Что я по большей части и делаю smile 

Да, забыл, нафига еклипс постоянно меняет порядок не видимых в данный момент табов? Ну не влазят у меня на экране 6 табов, между 5 я могу переключится по Ctrl+PageDown/PageUp, а для остальных двух вылазит список, там надо до них стрелочками добираться... Бесит... smile

Добавлено через 1 минуту и 3 секунды
Цитата(archimed7592 @  8.4.2008,  17:27 Найти цитируемый пост)
А есть где-нибудь руководство "vim для чайников"?

Запусти в консоли vimtutor

Добавлено через 8 минут и 5 секунд
А, вот еще вспомнил must have фичу smile Как там можно вставить в текст вывод любой шелл команды? smile 

Автор: Lazin 9.4.2008, 07:59
для еклипса AFAIK есть плагин(платный) добавляющий режимы vi, но я его в глаза не видел, слышал только (что есть)...
для студии аналогичный плагин - полный трэш, неделю на нем еле протянул =)
и кстати, зачем вообще ide в linux-e?

Автор: nerezus 9.4.2008, 21:40
Цитата

и кстати, зачем вообще ide в linux-e?
 чтобы удобнее было. Например  рефакторинговые подсказки или умное дополнение кода ;)

Автор: Любитель 10.4.2008, 14:41
Цитата(nickless @  8.4.2008,  20:25 Найти цитируемый пост)
Как минимум макросы

Всмысле встроенный скриптовый язык? Или запись действий (потыкал кнопки - хочу повторить). Кстати, вот что-т нашёл - https://macroshmacro.dev.java.net/

Цитата(nickless @  8.4.2008,  20:25 Найти цитируемый пост)
В vim-e они есть, он для этого сделан, после привыкания к нему отвыкать ужасно не хочется.

Цитата(nickless @  8.4.2008,  20:25 Найти цитируемый пост)
или bash после zsh

Вот к zsh привык быстро. А удобства вима - хоть убейте, не оценил....

Цитата(nickless @  8.4.2008,  20:25 Найти цитируемый пост)
Почему я должен выравнивать большие блоки комментариев по ширине вручную? Почему нельзя нормально соединить две строки?

Потому что ещё не сделали встроенной возможности )))

Цитата(nickless @  8.4.2008,  20:25 Найти цитируемый пост)
В vim-е любая операция по удалению копирует удалённый текст, и его можно вставить в другом месте. Это удобно! Не нужно специально копировать или вырезать его, он всегда там.

Ну... Не сказал бы, что это плюс. Удалить - это удалть! И не надо поганить мне буфер.

ЗЫ Мы ушли от темы smile

Автор: JackYF 10.4.2008, 16:55
Цитата(Любитель @  10.4.2008,  13:41 Найти цитируемый пост)
И не надо поганить мне буфер.

У тебя буферов в vim'е 10 штук минимум. Предыдущий при этом не затирается. Так что мимо smile

Добавлено через 21 секунду
Цитата(Любитель @  10.4.2008,  13:41 Найти цитируемый пост)
А удобства вима - хоть убейте, не оценил....

Нет, ну личное дело каждого smile

Автор: Любитель 10.4.2008, 17:30
Цитата(JackYF @  10.4.2008,  16:55 Найти цитируемый пост)
У тебя буферов в vim'е 10 штук минимум. Предыдущий при этом не затирается. Так что мимо 

Всё равно. Удалить - это удалить! Мне это текст - аюсолютно не нужен. Зачем его оставлять?! Cut - на то и cut, а delete - на то и delete  smile

Добавлено через 3 минуты и 27 секунд
vim мне не нравиться именно в палне "модальности" (или как это там?). Скрипты, команды - я только за (ну с соответствующими хоткеями).

Автор: nickless 10.4.2008, 22:21
Цитата(Любитель @  10.4.2008,  13:41 Найти цитируемый пост)
Всмысле встроенный скриптовый язык? Или запись действий (потыкал кнопки - хочу повторить)

Желательно и то и другое smile 

Цитата(Любитель @  10.4.2008,  13:41 Найти цитируемый пост)
Кстати, вот что-т нашёл - https://macroshmacro.dev.java.net/

О, спс, надо будет попробовать...

Цитата(Любитель @  10.4.2008,  16:30 Найти цитируемый пост)
Мне это текст - аюсолютно не нужен. Зачем его оставлять?! 

А вдруг понадобится? Памяти жалко? smile 

Цитата(JackYF @  10.4.2008,  15:55 Найти цитируемый пост)
Нет, ну личное дело каждого

 smile 

Цитата(Любитель @  10.4.2008,  16:30 Найти цитируемый пост)
vim мне не нравиться именно в палне "модальности" (или как это там?).

Попробуй emacs, там функционал практически такой же, правда об шорткаты можно пальцы сломать smile 

Цитата(Любитель @  10.4.2008,  13:41 Найти цитируемый пост)
ЗЫ Мы ушли от темы

Да, надо прекращать флудить smile 

Автор: MAKCim 11.4.2008, 09:02
Цитата(archimed7592 @  8.4.2008,  18:27 Найти цитируемый пост)
А то вижу как у вас глаза горят при упоминании этого наименования и аж завидно

vim.org

Автор: kamre 11.4.2008, 17:45
Цитата(Любитель @ 5.4.2008,  15:07)
Цитата(archimed7592 @  5.4.2008,  14:17 Найти цитируемый пост)
Жму ctrl+space - в 90% случаев не получаю ничего, в 5% - получаю не то, что нужно, в оставшихся 5% - да, работает. Мне казалось, что в целом эта картина называется "не работает"

Ну, честно сказать, сколько видел автокомплитов дял плюсов - идеального ничего не видел (по сравнению с ява + эклипс или шарп + VS). Но эклипсовский автокомплит студийному явно не проигрывает... Можно, конечно, заняться конкретными примерами, но стоит ли? smile Тем более, как я говорил выше - эклипс развивается. Студия (для плюсов) не особо...

Насчет "автокомплита для плюсов". Сейчас занимаюсь всякими архитектурными исправлениями и рефакторингами для одной библиотеки в проекте. В этой библиотеке > 500 файлов исходников. Так вот ни Visual Assist, ни SlickEdit, ни, тем более, Eclipse не могут правильно распарсить код. Правильно - это чтобы работала навигация по коду (поиск defenition and references) и был корректный автокомплит. На части кода они довольно хорошо подсказки выдают, но вот с навигацией у всех плохо... 

Правильно у меня заработал только XRefactory в Emacs, и то только после долгой и упорной настройки. Томозит он еще здоровски, когда индексирует исходники. Но зато все очень честно делает и всегда корректно выдает то, что нужно. Так что рефакторить и писать код для меня получается удобнее в Emacs (ну и компилировать тоже). Отлаживаться, конечно, удобнее в студии. А для профайлинга и слежения за памятью использую Rational Purify & Quantify.

P.S. На vim еще даже не смотрел особо, знаю только как из него выходить и текст начать править smile И, кажется, что для C++ в нем ничего подобного XRefactory по корректности работы с C++ кодом нет. Или знатоки vim могут что-то посоветовать?

Автор: Mayk 11.4.2008, 18:38
Цитата(Любитель @  10.4.2008,  21:30 Найти цитируемый пост)
Всё равно. Удалить - это удалить! Мне это текст - аюсолютно не нужен. Зачем его оставлять?! Cut - на то и cut, а delete - на то и delete  smile

Специально для эстетов! 

Цитата(change.txt)

8. The black hole register "_

урра! 

Автор: nickless 11.4.2008, 19:59
Цитата(kamre @  11.4.2008,  16:45 Найти цитируемый пост)
Или знатоки vim могут что-то посоветовать? 

http://ctags.sourceforge.net/ + http://www.vim.org/scripts/script.php?script_id=1520 + http://www.vim.org/scripts/script.php?script_id=1643
XRefactory не видел, сравнивать не могу.

Автор: kamre 11.4.2008, 23:34
Цитата(nickless @ 11.4.2008,  19:59)
Цитата(kamre @  11.4.2008,  16:45 Найти цитируемый пост)
Или знатоки vim могут что-то посоветовать? 

http://ctags.sourceforge.net/ + http://www.vim.org/scripts/script.php?script_id=1520 + http://www.vim.org/scripts/script.php?script_id=1643
XRefactory не видел, сравнивать не могу.

Сам по себе ctags для c++ явно недостаточен, т.к. он только индексирует исходники и строит тэги для "глобальных" объектов, и то с проблемами (см. caveats и bugs в мане). Только по тэгам можно сделать браузер классов. 

А вот для навигации и автокомплита уже нужно полностью учитывать правила языка, чтобы определять какого типа объект или что стоит за вызовом функции. А это уже совсем нетривиальная задача: нужно учитывать что попало в область видимости, какие глобальные символы перекрыты локальными, а так же то, что стоит за #include, #define, typedef, templates...  Например, чтобы корректно переходить к defenition в случае, когда имеются перегруженные функции или просто функции с одинаковыми именами в разных классах, необходимо весь этот анализ в каком-то виде проделывать. 

Неужели в этих небольших скриптах для vim все это работает, даже для нетривиальных случаев? С помощью них можно, например, правильно найти все места в коде, где вызывается функция класса, имя которой совпадает с именами функций из других классов?

В XRefactory, скорее всего, уже встроен почти front end компилятора для C++, поэтому он так долго и честно парсит исходники (да еще и по нескольку раз, если встречаются директивы условной компиляции)..

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

Автор: Любитель 14.4.2008, 15:30
Фтопку XRefactory!  smile С вашим подходом надо:

1. Утилу, строящую синтаксическое дерево кода + позволяющую обратно получить код (из изменённого дерева). В идеале двойное преобразование возвращает к исходному коду - т. е. храним также все отступы, что в каком файле и т. д.

2. АПИ для работы с этим деревом. + биндинги для питона и пр. + команд-лайн утилы для простых модификаций.

3. Пишем скрипты для вима и пр. для всяких рефакторингов.


Вообщем что-т такое...

Автор: Void 14.4.2008, 16:26
Цитата(kamre @  12.4.2008,  01:34 Найти цитируемый пост)
В XRefactory, скорее всего, уже встроен почти front end компилятора для C++, поэтому он так долго и честно парсит исходники

Ага, EDG, который используется в Comeau и Intel C++.

Любитель, полный разбор исходного текста неизбежен для нормальной IDE. Так поступают (не для C++) и Eclipse, и Visual Studio.

Автор: nerezus 14.4.2008, 21:24
Цитата

MSVS поддерживает, согласно http://en.wikipedia.org/wiki/Visual_C_Plus_Plus, помимо ia32, x86_64 и ia64, да и то - со скрипом, подробности, на этой же странице.

и кучу рисков вроде ARM он уж точно поддерживает, не надо дезынформации ;)

Автор: kamre 14.4.2008, 22:47
Цитата(Любитель @ 14.4.2008,  15:30)
Фтопку XRefactory!  smile С вашим подходом надо:

1. Утилу, строящую синтаксическое дерево кода + позволяющую обратно получить код (из изменённого дерева). В идеале двойное преобразование возвращает к исходному коду - т. е. храним также все отступы, что в каком файле и т. д.

2. АПИ для работы с этим деревом. + биндинги для питона и пр. + команд-лайн утилы для простых модификаций.

3. Пишем скрипты для вима и пр. для всяких рефакторингов.


Вообщем что-т такое...

В идеале так и надо, конечно smile Только необязательно в пункте 3 vim, можно и другие "IDE" рассматривать smile 
Вон, мозилловцы чем-то подобным занимаются уже: http://wiki.mozilla.org/Dehydra_GCC. Может быть когда-нибудь в далеком (или не очень) будущем именно по такой схеме и будут с (тогда уже legacy?) с++ кодом работать..

А пока всего этого в полноценной реализации нету. И самое удобное из того, что я пробывал - Emacs+XRefactory. Когда корректно находятся все reference для символа, то часто можно автоматизировать работу по изменению кода с помощью макросов. Ну и встроенные рефакторинги тоже есть.  И автокомплит корректный (правда не быстрый), т.к. честно парсится весь код, который подключается через хедеры. 

Vim'у пока такое вроде и не снилось, только "костыли" в виде скриптов и ctags... Еще хорошо развивается Eclipse+CDT, может когда-нибудь и они подойдут вплотную к  front end компилятора для c++smile

Автор: nickless 14.4.2008, 23:24
Повторюсь, что не знаю возможностей XRefactory, по этому сравнивать не могу.

Цитата(kamre @  11.4.2008,  22:34 Найти цитируемый пост)
Неужели в этих небольших скриптах для vim все это работает, даже для нетривиальных случаев?

Нет, не во всех, парсинг довольно простой и неточностей там тоже хватает, но в большинстве случаев этого вполне достаточно.

Цитата(kamre @  11.4.2008,  22:34 Найти цитируемый пост)
С помощью них можно, например, правильно найти все места в коде, где вызывается функция класса, имя которой совпадает с именами функций из других классов?

Нет, они для этого и не предназначены (насколько я знаю).

Цитата(kamre @  14.4.2008,  21:47 Найти цитируемый пост)
Vim'у пока такое вроде и не снилось, только "костыли" в виде скриптов и ctags...

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

Автор: Любитель 15.4.2008, 14:09
Цитата(Void @  14.4.2008,  16:26 Найти цитируемый пост)
Любитель, полный разбор исходного текста неизбежен для нормальной IDE. Так поступают (не для C++) и Eclipse, и Visual Studio. 

Без сомненья. Речь об отделении этого в отдельные утилы.

Автор: t_gran 16.4.2008, 06:57
На мой взгляд глупо выбирать из платформо-превязанного компилятора MSVC и платформо-независимого GCC. Если писать кросс-платформенное приложение, однозначно GCC. Если же под Win32, то однозначно MSVC (более шустрый и оптимизированный).
Хотя я сам, под Win32, юзаю Code::Blocks-8.02 + GCC-4.1

Автор: jackfrost 25.6.2008, 11:30
Банальный вопрос после столь бурного обсуждения: 

А можно GCC в MSVC-оболочку  встроить? 
веть можно как-то... раз интел встраивается.... 


Автор: Lazin 25.6.2008, 11:44
Банальный вопрос, а зачем? smile 

Автор: LSD 25.6.2008, 12:26
Банальный ответ: а шоб було! smile

Автор: Любитель 25.6.2008, 13:14
Правильный ответ - можно. VS SDK в руки. В студию можно встроить, что угодно, но мутно (ну не люблю я COM).

Автор: jackfrost 25.6.2008, 17:34
я надеялся кто-нить уже это сделал..
я точно не буду парится smile

на вопрос зачем отвечу так:
нужен C99 с GNU расширениями... а в коммандной строке как-то не по себе - люди смеются говорят на дворе уже 3-йе тысячелетие ))

Автор: Любитель 25.6.2008, 17:48
Eclipse

Автор: JackYF 25.6.2008, 21:51
Цитата(jackfrost @  25.6.2008,  16:34 Найти цитируемый пост)
а в коммандной строке как-то не по себе - люди смеются

Не хочу холиварить, но это лишь отмазка. При определённых навыках работа в консоли намного эффективнее (vim, к примеру). Ты профессионал или кто, что смотришь на непонятно кого? smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)