Comments 268
UFO just landed and posted this here
Если платформа поддержит (http://youtrack.jetbrains.com/issue/IDEA-88198), то да.
0
взгляд со стороны: имхо для них сейчас это должно быть в самых низких приоритетах =)
+14
Для Idea есть плагин. Вряд ли тут какие-то кардинальные отличия.
+4
Для Gitlab не дождались :) youtrack.jetbrains.com/issue/JT-17386
0
Можно ли теперь поставить плагин поддержки С++ в IDEA?
+10
Что на счёт поддержки разработки под Arduino? Там же тоже на C/C++ разрабатывают, только свой компилятор используется. Ну, т.е. никаких спец настроек не нужно — только настроить опции компиляции и проект и всё?
+6
Подумаем обязательно над этим (правда вряд ли раньше выпуска 1.0). Будем благодарны, если заведете тикет в трекере: youtrack.jetbrains.com/issues/CPP
+2
Оказывается уже даже есть: youtrack.jetbrains.com/issue/CPP-364
+14
Отвечу сам себе, чтобы в дальнейшем было людям проще найти — habrahabr.ru/post/247017/ Разобрался как в CLion для Arduino писать.
0
Во-первых большое спасибо! С марта очень часто заходил к вам в ожидании этой новости. Наконец не надо будет запускать виртуалку с линуксом для отладки C. (в OS X с этим не все просто...)
А поддержка Makefile планируется? Всетаки они тоже… популярны ;)
А поддержка Makefile планируется? Всетаки они тоже… популярны ;)
+2
Планируется (http://youtrack.jetbrains.com/issue/CPP-274). Мы пока не решили, что делать раньше Makefile или qmake. Зависит от пользователей и их запросов, на самом деле.
+2
qmake :)
+6
Проголосовал за Makefiles. Старый добрый unix way… )
+11
Удивите всех — сделайте поддержку qbs (в QtCreator-е до сих пор в зачаточном состоянии, а очень жаль)
+4
поддержу эту мысль; но — qbs не столько система сборки, сколько еще и система описания проекта, отслеживания зависимостей, плюс она предполагает множество своих собственных вещей (определение, допустим, qrc файлов для сборки)… опять же, выполнение javascript-а внутри IDE.
может, достаточно хотеть всего лишь ограниченной поддержки и не требовать поддержки полной?
очень надеюсь, что CLion хотя бы не испакостит структуру проекта на qbs'е кучей своих cmake-файлов *ушел проверять*.
может, достаточно хотеть всего лишь ограниченной поддержки и не требовать поддержки полной?
очень надеюсь, что CLion хотя бы не испакостит структуру проекта на qbs'е кучей своих cmake-файлов *ушел проверять*.
0
Как там у французов: «Будьте реалистами, требуйте невозможного».
+1
в итоге у меня появилась куча CMakeLists.txt — по всему дереву проекта.
причем в .gitignore прописать их не вариант — в проекте лежит ThirdParty/%libname%, которые собираются таки через cmake, решение — создавать десяток записей вида:
subproject1/*/CMakeLists.txt
Не есть хорошо.
причем в .gitignore прописать их не вариант — в проекте лежит ThirdParty/%libname%, которые собираются таки через cmake, решение — создавать десяток записей вида:
subproject1/*/CMakeLists.txt
Не есть хорошо.
+1
а как же GIP?
0
Планируется ли поддержка autotools(make) и Qt? Если да, то это будет идеальная IDE!
+8
Планируется (http://youtrack.jetbrains.com/issue/CPP-274). Мы пока не решили, что делать раньше Makefile или qmake. Зависит от пользователей и их запросов, на самом деле.
+2
В упор не понимаю, зачем использовать Qt в других IDE? Логичнее не покидая экосистему, кодить Qt-приложения под Qt Creator. Отличная IDE, мало багов, как по мне. Стабильная и поддерживается разработчиками Qt.
+6
UFO just landed and posted this here
1) Плагины, который напрягают, можно легко отключить. Цветовые схемы, все настраивается.
2) Дизайнер форм не нужен вообще. В случае с виджетами — перегружен, а QML вообще позволяет не покидать редактор,
мимо- пользуюсь Qt Creator последние 3.5 года для всех C++ проектов
2) Дизайнер форм не нужен вообще. В случае с виджетами — перегружен, а QML вообще позволяет не покидать редактор,
мимо- пользуюсь Qt Creator последние 3.5 года для всех C++ проектов
+5
UFO just landed and posted this here
Сразу выключайте плагины, которые вам не нужны. У меня, например, выключено не меньше половины плагинов поддержки всего разного, так что даже вкладки Design нету, а IDE летает, как птичка.
Рекоммендую тот же час сдуть пыль, пройтись по настройкам, подобрать удобные для себя шрифты / цветовые схемы (там, кстати, есть режим FakeVim — замечательная иммитация редактора) и поиграться с плагинами.
Вам понравится, я это гарантирую.
Рекоммендую тот же час сдуть пыль, пройтись по настройкам, подобрать удобные для себя шрифты / цветовые схемы (там, кстати, есть режим FakeVim — замечательная иммитация редактора) и поиграться с плагинами.
Вам понравится, я это гарантирую.
+2
В целом я согласен, Qt Creator отличная IDE. Но все же верю, что у JetBrains выйдет очень достойная IDE.
+4
Я не говорю, что JetBrains не умеет делать среды разработки, нет. Я говорю, что логичнее использовать в экосистеме Qt именно Qt Creator, потому что эти ребята, определенно, сделают лучше. И опять-таки, не потому что JetBrains не умеют писать софт, а потому что экосистема.
0
Я говорю, что логичнее использовать в экосистеме Qt именно Qt Creator, потому что эти ребята, определенно, сделают лучше
Я ни на чем не настаиваю, но AppCode получше Xcode будет во многом.
+5
Они определенно сделают лучше те части, которые имеют отношение непосредственно к Qt. А вот как, например, там обстоит дело с редактированием кода вообще — подсказки, автокомплит, рефакторинг? В последний раз, когда я его смотрел, там это все было в состоянии, типичном для C++ IDE где-то пятилетней давности — т.е. робкие попытки распарсить плюсы «по-простому», загинающиеся на мало-мальски сложном коде с шаблонами. Для самого Qt этого хватает, а вот когда начинается активное использование STL и Boost — уже нет.
+4
А вот не используем мы Qt, но qmake используем. Такое бывает, да.
+5
В целом да, но вот более полноценной поддержки CMake мне в QtCreator не хватает.
+1
Потому что QtCreator is stupid but Idea is smart. Если вы попробуете Idea на Java проекте, вы очень быстро заметите разницу.
Qt Creator не очень продуман с точки зрения интерфейса, его парсер С++ ломается даже на сложном рабочем коде, а если код в некомпилируемом состоянии, то он может совсем запутаться (хотя, возможно, с переводом парсера на clang это поправили). Возможности рефакторинга тоже очень ограничены (попробуйте, например, переименовать файл так, чтобы все include поправились)
Qt Creator поддерживает только C++ и javascript по большому счету. Большие проекты обычно содержат и части на других языках — html, xml, bash… — их совсем не удобно редактировать. Ну и в общем выбор плагинов гораздо более ограничен, чем в Idea.
Qt Creator не очень продуман с точки зрения интерфейса, его парсер С++ ломается даже на сложном рабочем коде, а если код в некомпилируемом состоянии, то он может совсем запутаться (хотя, возможно, с переводом парсера на clang это поправили). Возможности рефакторинга тоже очень ограничены (попробуйте, например, переименовать файл так, чтобы все include поправились)
Qt Creator поддерживает только C++ и javascript по большому счету. Большие проекты обычно содержат и части на других языках — html, xml, bash… — их совсем не удобно редактировать. Ну и в общем выбор плагинов гораздо более ограничен, чем в Idea.
0
А без CMake никак? А то у меня ни одного проекта с ним и нет (
0
Пока никак. Смотрите сюда: youtrack.jetbrains.com/issue/CPP-274. Мы пока не решили, что делать раньше Makefile или qmake. Зависит от пользователей и их запросов, на самом деле.
+3
Можно поинтересоваться, чем этот продукт лучше бесплатного опенсорсного Qt Creator? И вообще, в чем «kill feature» CLion, который заставит меня пересесть из шустрого криейтора или той же студии на винде, на продукт JetBrains?
+1
UFO just landed and posted this here
Qt Creator — это IDE для разработки C++ приложений. Если я правильно понимаю, то CLion так же позиционирует себя, как IDE для С++ разработки. Помогите мне, слепому, найти сомнительность в моей далеко несовершенной логике, пожалуйста.
+8
UFO just landed and posted this here
Учитывая, что Qt — это С++ чистой воды, приправленный препроцессорами, которые на уровне IDE не рассматриваются вообще. Долой стереотипы. Qt Creator — это С++ IDE, ее даже можно отдельно от кьюта скачать. То, что она распространяется в бандле с Qt, только расширяет область ее поддержки.
+8
Как у C++ редактора у Qt Creator очень много болячек в области автодоплнения, рефакторинга и прочего анализа кода, а так же с поддержкой cmake (она ужасна). Так что в данном случае он может быть объективно хуже любой другой IDE, у которой с этим все впорядке (CLion я уже скачал, но не смотрел, поэтому не могу сравнить еще)
+8
Всем подавай «kill feature», которая заставит сразу все бросить и перейти на новую IDE. Никто никого не заставляет. Есть хороший проект, есть конкуренция. Зачем Вам эта самая «kill feature»? Вы в повседневной жизни используете только одну ее? И вообще используете свой текущий IDE только из-за того, что есть эта самая «kill feature»? А то я думал выбор IDE это совокупность факторов. Простите, что брюзжу слюной, я просто это к тому, что не хотите — не ешьте)
+17
Прощаю, за брюзжу слюной, но я просто к тому, что когда на рынок выходит новый продукт, он должен быть чем-то лучше его предков. Если килфич не будет, то никто просто на него не перейдет, потому что всех все устраивает. Когда ты делаешь что-то не новое, а повторяешь старое — это, очень щепетильный вопрос, я бы сказал.
-2
Не воспринимайте на свой счет, но мне кажется, что производители техники от души посмеялись бы над фразой: «Если килфич не будет, то никто просто на него не перейдет, потому что всех все устраивает.»
Другая сторона медали. Меня вот полностью устраивали наручные часы — я их попросту не ношу. Но тут вдруг появляются умные часы, казалось бы, вот она, килфича — а мне как было удобно смотреть время на телефоне, так и продолжаю это делать. Подумайте над этим.
Другая сторона медали. Меня вот полностью устраивали наручные часы — я их попросту не ношу. Но тут вдруг появляются умные часы, казалось бы, вот она, килфича — а мне как было удобно смотреть время на телефоне, так и продолжаю это делать. Подумайте над этим.
0
А на данный момент, CLion не умеет и половины того, что под силу конкуррентам.
-1
На данный момент CLion: «this build is not even a Beta yet». Сравнивайте по возможностям со зрелыми IDE от JetBrains.
+3
Простите, каким конкурентам? На какой платформе?
Например, на linux я не вижу из существующих IDE серьёзных конкуретов!
(разве что виртуалка с виндой и студией с Visual Assist, но это уже «извращённая» артиллерия).
Например, на linux я не вижу из существующих IDE серьёзных конкуретов!
(разве что виртуалка с виндой и студией с Visual Assist, но это уже «извращённая» артиллерия).
+2
Киллер фичами у JetBrains я бы назвал: глубину анализа кода, возможности авторефакторинга, встроенные инспекции кода на лету, поддержку VCS, скорость развития IDE и исправления ошибок, удобство навигации по проекту, поддержку огромного кол-ва библиотек и фреймворков. Опыт основан на Intellij Idea.
+25
Может звучать субъективно, но тот же QtC умеет анализировать даже «тяжелые» случаи метапрограммирования из спецификаций С++11. Насчет поддержки VCS я ничего не буду говорить, потому что QtC поддерживает Git/Mercurial/Perforce/SVN/Bazaar/etc. Навигация в QtC выполняется по Локатору (Ctrl+K), который очень шустро индексирует все символы в классах и тд.
А вот качество авторефакторинга и скорость развития IDE это очень спорный вопрос…
А вот качество авторефакторинга и скорость развития IDE это очень спорный вопрос…
+2
Тут и раскрываются нюансы IDE от JetBrains. Раз уж субъективно… Функционал на первый взгляд тот же, но это не так.
Например, Git в QtCreator и Intellij Idea. Пришлось заменять его на TortoiseGit.
Навигация: как в Локаторе сделать поиск по имени функции во всем проекте? А поиск по шаблону кода?
Кастомизация интерфейса. IDE от JetBrains позволяют очень гибко настраивать внешний вид интерфейса. При разработке на Qt хочется иметь список открытых вкладок в виде постоянно открытого вертикального списка, но сделать это встроенными средствами или найти плагин так и не удалось.
Стабильность QtCreator оставляет желать много лучшего. Часто падает, спасают только автосохранение.
Автооформление кода. Задаёшь стиль, IDE автоматически приводи код к нужному виду. Очень удобно, когда на проекте есть новички, которые не могут писать хорошо отформатированный код.
Список можно продолжать долго, QtCreator сильно отстаёт в функционале и удобстве от Idea.
Например, Git в QtCreator и Intellij Idea. Пришлось заменять его на TortoiseGit.
Навигация: как в Локаторе сделать поиск по имени функции во всем проекте? А поиск по шаблону кода?
Кастомизация интерфейса. IDE от JetBrains позволяют очень гибко настраивать внешний вид интерфейса. При разработке на Qt хочется иметь список открытых вкладок в виде постоянно открытого вертикального списка, но сделать это встроенными средствами или найти плагин так и не удалось.
Стабильность QtCreator оставляет желать много лучшего. Часто падает, спасают только автосохранение.
Автооформление кода. Задаёшь стиль, IDE автоматически приводи код к нужному виду. Очень удобно, когда на проекте есть новички, которые не могут писать хорошо отформатированный код.
Список можно продолжать долго, QtCreator сильно отстаёт в функционале и удобстве от Idea.
+2
Создается ощущение, что вы очень давно не работали с криейтором.
1) Что вас не устраивает в поддержке Git? Коммиты делает, файлы добавляет-удаляет, диффы показывает.
2) Никогда в этом не нуждался. Не знаю как вы, но когда я ищу какой-то метод, то я представляю, где он находится, а Локатор отлично ищет по классу все символы.
3) Гибкость настройки GUI — это невероятно, невероятно субъективно.
4) У меня QtC за последние полгода не упал ни разу.
5) Начиная с позапрошлой версии, можно использовать дефолтный (Qt/GNU) или свой кастомный «coding style».
Список можно продолжать долго, но в этом будет мало конструктива, ведь сравнивать последнюю IDEA и QtC годичной давности — не конструктивно.
1) Что вас не устраивает в поддержке Git? Коммиты делает, файлы добавляет-удаляет, диффы показывает.
2) Никогда в этом не нуждался. Не знаю как вы, но когда я ищу какой-то метод, то я представляю, где он находится, а Локатор отлично ищет по классу все символы.
3) Гибкость настройки GUI — это невероятно, невероятно субъективно.
4) У меня QtC за последние полгода не упал ни разу.
5) Начиная с позапрошлой версии, можно использовать дефолтный (Qt/GNU) или свой кастомный «coding style».
Список можно продолжать долго, но в этом будет мало конструктива, ведь сравнивать последнюю IDEA и QtC годичной давности — не конструктивно.
-3
Работаю с 3.2.0, это последний на сегодня релиз.
1. Вопрос в удобстве, просто сравните с тем, как это сделано в IDE от JetBrains. Куча отдельных окон, даже просмотр лога представляет собой необработанный выхлоп git log. Никакого дополнительного функционала, даже фильтров нету.
2. Я привёл частный случай, средств для поиска символов в Idea очень много и большей частью из них я постоянно пользуюсь.
3. А в чём тут субъективность. В QtCreator внешний вид почти не кастомизируется, даже дерево проектов нельзя перекинуть на правую сторону.
4. У меня раз в неделю да свалится. Может быть у Вас проект недостаточно большой.
5. Я не нашёл возможности привести существующий код в соответствие заданным настройкам стиля кода.
1. Вопрос в удобстве, просто сравните с тем, как это сделано в IDE от JetBrains. Куча отдельных окон, даже просмотр лога представляет собой необработанный выхлоп git log. Никакого дополнительного функционала, даже фильтров нету.
2. Я привёл частный случай, средств для поиска символов в Idea очень много и большей частью из них я постоянно пользуюсь.
3. А в чём тут субъективность. В QtCreator внешний вид почти не кастомизируется, даже дерево проектов нельзя перекинуть на правую сторону.
4. У меня раз в неделю да свалится. Может быть у Вас проект недостаточно большой.
5. Я не нашёл возможности привести существующий код в соответствие заданным настройкам стиля кода.
+6
Этот год провожу в обнимку с Qt creator. Считаю её прекрасной IDE, сильно заточенной под программирование на Qt. Я бы не назвал Qt просто С++ (тут место для холивара, но предлагаю в него не скатываться).
Просто хотел сказать, что нестабильность QtC у меня проявляется регулярно. Но только при закрытии приложения, поэтому ничего не теряется. OS X 10.9, если что, возможно на Win/linux дела обстоят лучше.
А так, отличная IDE. И даже редактор форм помогает быстро составить внешний вид окна без особых проблем (пока не начнутся сильно кастомные компоненты).
Просто хотел сказать, что нестабильность QtC у меня проявляется регулярно. Но только при закрытии приложения, поэтому ничего не теряется. OS X 10.9, если что, возможно на Win/linux дела обстоят лучше.
А так, отличная IDE. И даже редактор форм помогает быстро составить внешний вид окна без особых проблем (пока не начнутся сильно кастомные компоненты).
+4
У меня стабильная проблема с криэйтором: модификации .qbs перечитываются не сразу, а спустя какое-то продолжительное время после Ctrl-S. (Win). Что делать с этим?
0
Настоящая работа с C++ возможна только при полном парсинге содержимого. Никакое индексирование тут не поможет.
Если IDE заявляет полную поддежку C++, она должна успешно выполнить автодополнение для любой точки выражений из следующего примера:
То есть поставив курсор после «
P.S.: Пример взят из моего баг репорта для KDevelop, который в последней версии успешно решает эту задачу.
Если IDE заявляет полную поддежку C++, она должна успешно выполнить автодополнение для любой точки выражений из следующего примера:
#include <iostream>
#include <vector>
template<typename T>
struct Parameter {
std::vector<T> vector_field;
T get_first() { return vector_field.front(); }
};
template < template<typename> class TemplateParam >
struct Example {
// completing type passed as parameter
typedef TemplateParam<int> SpecializedParam;
// using typedef to define a field
SpecializedParam field;
};
int main(int argc, char** argv) {
// Instantiating outer template
Example<Parameter> instance;
// Using inner template type
instance.field.vector_field.push_back(42);
std::cout << instance.field.get_first() << std::endl;
}
То есть поставив курсор после «
instance.field.vector_field.
» мы должны получить дополнение на все функции-члены std::vector, причем с учетом специализации.P.S.: Пример взят из моего баг репорта для KDevelop, который в последней версии успешно решает эту задачу.
+6
Автодополнение для вашего примера адекватно работает и в QtCreator 3.2.0 и в CLion.
0
Я для проверки анализа плюсов в IDE пользуюсь таким вот кодом:
После чего переключаю target с 32-битного на 64-битный в настройках проекта, и смотрю, что будет в редакторе. Если все реализованно корректно, то первая строка в main должна менять смысл с объявления переменной «d» на выражение с двумя операторами < и >, и обратно. Соответственно, семантическая подсветка должна соответствующим образом подкрашивать «d» либо как как локальную переменную, либо как член enum'а; и всякие там Go to Definition, Find References, и наличные рефакторинги вроде Rename, должны корректно отрабатывать.
template<size_t N = sizeof(void*)> struct a;
template<> struct a<4> {
enum { b };
};
template<> struct a<8> {
template<int> struct b {};
};
enum { c, d };
int main() {
a<>::b<c>d;
d;
}
После чего переключаю target с 32-битного на 64-битный в настройках проекта, и смотрю, что будет в редакторе. Если все реализованно корректно, то первая строка в main должна менять смысл с объявления переменной «d» на выражение с двумя операторами < и >, и обратно. Соответственно, семантическая подсветка должна соответствующим образом подкрашивать «d» либо как как локальную переменную, либо как член enum'а; и всякие там Go to Definition, Find References, и наличные рефакторинги вроде Rename, должны корректно отрабатывать.
+14
То есть, IDE корректно показывает, что тип выражения «
Чтож, тем лучше. Вероятнее всего, и там и там разбор реализуется средствами бакенда компилятора. В частности, такую функциональность предоставляет Clang/LLVM. То есть, IDE скармливает ему участки кода с метаинформацией, а бакенд производит синтаксический разбор.
Строго говоря, это единственный адекватный путь решения задач парсинга С++.
До последнего summer of code, KDevelop делал разбор C++ вручную, реализуя по сути полноценный парсер C++, только еще сложнее, ибо макросы препроцессора тоже приходилось кодировать как элементы синтаксиса. Вся эта канитель занимает около 50 000 строк кода, который сложен, глючен, а его поддержка сводится к игре в догонялки с компиляторами, которые всегда выиграют.
Использование готового бакенда Clang, того же самого, что используется при реальной компиляции — это просто манна небесная для разработчиков, плюс возможность подсвечивать нетривиальные ошибки еще на этапе набора кода.
instance.field.vector_field.back()
» будет int?Чтож, тем лучше. Вероятнее всего, и там и там разбор реализуется средствами бакенда компилятора. В частности, такую функциональность предоставляет Clang/LLVM. То есть, IDE скармливает ему участки кода с метаинформацией, а бакенд производит синтаксический разбор.
Строго говоря, это единственный адекватный путь решения задач парсинга С++.
До последнего summer of code, KDevelop делал разбор C++ вручную, реализуя по сути полноценный парсер C++, только еще сложнее, ибо макросы препроцессора тоже приходилось кодировать как элементы синтаксиса. Вся эта канитель занимает около 50 000 строк кода, который сложен, глючен, а его поддержка сводится к игре в догонялки с компиляторами, которые всегда выиграют.
Использование готового бакенда Clang, того же самого, что используется при реальной компиляции — это просто манна небесная для разработчиков, плюс возможность подсвечивать нетривиальные ошибки еще на этапе набора кода.
0
Редактор QtCrator не умеет решить даже тривиальные задачи, отсутствие решения которых очень мешает для разработки на C++:
1.
— при наведении на mymap подсказка выглядит просто как «std::map», не показывая, какими параметрами инстанцирован шаблон, нужно переходить к месту определения.
2.
в той же студии или kdevelop — будет подсказка по параметрам шаблона при наборе в духе
в QtCreator — ничего. В случае с большими наборами шаблонных параметров (например в boost), которые наизусть не помнишь — такого очень не хватает
1.
//...
std::map<size_t, std::string> mymap;
//...
mymap //..
— при наведении на mymap подсказка выглядит просто как «std::map», не показывая, какими параметрами инстанцирован шаблон, нужно переходить к месту определения.
2.
std::map<std::string //...
в той же студии или kdevelop — будет подсказка по параметрам шаблона при наборе в духе
std::map<K, <b>T</b>, H = std::hash<K>, A = std::allocator<std::pair<K, T>>>
в QtCreator — ничего. В случае с большими наборами шаблонных параметров (например в boost), которые наизусть не помнишь — такого очень не хватает
+1
Хм. Тогда я не понимаю как, по утверждению vt4a2h, QtCreator может решить тот пример с шаблонами, что я привел выше.
0
В Eclipse CDT работает. Парсит код самостоятельно.
0
Вот в посте пытались как раз это написать. Интеграция с cmake (автоматическое обновление проекта), навигация по коду, кодогенерация, рефакторинги всевозможные, анализ кода с подсказками, как найденные проблемы исправить. А еще есть встроенные VCS и таск-треккеры.
+7
Интеграция с CMake есть везде.
Навигация по коду есть везде.
VCS и таски есть много где.
Ничего нового, в целом. А вот кодогенерация… стоит пощупать, спасибо.
Навигация по коду есть везде.
VCS и таски есть много где.
Ничего нового, в целом. А вот кодогенерация… стоит пощупать, спасибо.
-2
В двух словах не объяснить. Нужно взять и попробовать. Вы как человек, всю жизнь покупающий новую продукцию автопрома в салонах по неимоверной цене. Он никогда не ездил на иномарке. «А зачем? Колёса и там и тут есть, руль есть, кресла есть, бензин такой же, едут тоже обе. Зато у меня новая.» И пока что он не попробует, его не переубедишь.
+2
Про Qt Creator не скажу, но когда я пользовался IDEA, мне мышь была вообще не нужна, всё можно было делать хоткеями. В чистом Visual Studio я без мыши обходиться не могу, Visual Assist существенно улучшает положение, но всё же периодически приходится тянуться к мыши.
От CLion в первую очередь жду полный контроль над средой с помощью клавиатуры.
От CLion в первую очередь жду полный контроль над средой с помощью клавиатуры.
+1
А в каких версиях она будет? Community + коммерческая?
+1
Пока 1.0 будет коммерческой версией. Потом рассмотрим другие варианты.
+1
Сколько будет стоит лицения и когда ее можно будет приобрести? Будут ли скидки для первых покупателей?
+5
Лицензия будет примерно по цене как у AppCode сейчас. Будет тогда, когда будет первая коммерческая 1.0 версия. Пока сроков нет, надо посмотреть на фидбек от public EAP и еще много чего доделать.
Про скидки тоже пока рано говорить )
Про скидки тоже пока рано говорить )
+3
OS лицензии планируете?
0
Что Вы имеет в виду под этим? Лицензия на продукт не зависит от ОС. Можно использовать на любой.
0
Подозреваю что OS == OpenSource.
0
А, извините за недо понимание тогда. В целом планируется стандартный набор лицензий, как, например, для AppCode.
0
Может это уже обсуждалось, но я всё же спрошу: поддержка 32-ной Windows будет из коробки? Я, конечно, запустил её при помощи 32-бит JRE, но хочется без лишних телодвижений.
0
Пока нет.
0
OK, поправить bat-файл не проблема. :)
Включил usage statistics, пользуйтесь на здоровье!
Включил usage statistics, пользуйтесь на здоровье!
0
На самом деле, 32-битная Windows совсем не в планах. Просто потому, что мы поддерживаем только 64-битную JDK.
+2
Расскажите, пожалуйста, почему вы приняли решение отказаться от 32-битной JDK.
+2
В основном по двум причинам:
1. 32-битная JDK имеет ограничения по памяти и не дает CLion больше, чем 700mb. Мы не влезаем.
2. Ну и все же поддерживать столько операционок и тулчейнов, уже +1 еще одна JDK — это многовато/дороговато по ресурсам для нас. Приходится выбирать.
1. 32-битная JDK имеет ограничения по памяти и не дает CLion больше, чем 700mb. Мы не влезаем.
2. Ну и все же поддерживать столько операционок и тулчейнов, уже +1 еще одна JDK — это многовато/дороговато по ресурсам для нас. Приходится выбирать.
+4
В проекте с кучей шаблонов кушает 6 гигабайт памяти, тут уже не до 32-битного Windows :)
0
Я в JetBrains верю (т.к. пользуюсь их продуктами), но пока она настолько сырая, что пока выйдет релиз поддержка 32-битных систем будет просто не нужна.
+1
Запуская Android Studio сегодня взглянул на версию 0.8 и как раз подумал что к 1.0 должна появиться поддержка NDK и C++.
+5
make! Нам нужен make!
Или хотя бы просто указать, какой командой проект собирается.
Или хотя бы просто указать, какой командой проект собирается.
+5
Пока нет. Голосуйте вот здесь: youtrack.jetbrains.com/issue/CPP-274
+1
Будет ли поддержка c11?
А можно попросить чтобы, cmake генерировал ninja и собирал с её помощью?
А можно попросить чтобы, cmake генерировал ninja и собирал с её помощью?
0
С11 планируется youtrack.jetbrains.com/issue/OC-9639
Попросите в трекере: youtrack.jetbrains.com/issues/CPP )
Попросите в трекере: youtrack.jetbrains.com/issues/CPP )
+1
А каким образом CLine определяет Toolchain?
На пример у меня в Windows есть MSYS2(MSYS64) GitMSYS и GNUStep Mingw
Из них он видит только GNUStep Mingw, при этом указывает путь к gcc/g++ которые расположены в GitMSYS
На пример у меня в Windows есть MSYS2(MSYS64) GitMSYS и GNUStep Mingw
Из них он видит только GNUStep Mingw, при этом указывает путь к gcc/g++ которые расположены в GitMSYS
0
Очень интересно. Скачал, установил. Буду тестировать.
P.S.: Не возражают ли авторы, если будет написан PKGBUILD для Arch Linux?
P.S.: Не возражают ли авторы, если будет написан PKGBUILD для Arch Linux?
+3
Не возражаем )
+2
Собственно говоря сделал PKGBUILD и разместил его в AUR. Теперь всё это устанавливается в /opt командой
$ yaourt -S clion
Арчеводы могут пробовать :)
Единственное:
1. В комплекте идут cmake и gdb, за обсуждением не следил, может чего и пропустил, но зачем это если у linux-девелопера наверняка эти штуки есть. В целях тестирования? Собственно поэтому пакет разворачивает всё в /opt, чтобы не было конфликтов
2. Интересует точное наименование лицензии для добавки в PKGBUILD. Ссылку на сайт разработчика указал.
Прошу слишком больно не бить — это первый PKGBUILD, могут быть дикие косяки
$ yaourt -S clion
Арчеводы могут пробовать :)
Единственное:
1. В комплекте идут cmake и gdb, за обсуждением не следил, может чего и пропустил, но зачем это если у linux-девелопера наверняка эти штуки есть. В целях тестирования? Собственно поэтому пакет разворачивает всё в /opt, чтобы не было конфликтов
2. Интересует точное наименование лицензии для добавки в PKGBUILD. Ссылку на сайт разработчика указал.
Прошу слишком больно не бить — это первый PKGBUILD, могут быть дикие косяки
0
GDB и CMake забандлены, чтобы уменьшить количество проблем со всем разнообразнием toolchain-ов, которые есть.
Соб-но, основной комментарий в том, что это не совсем JetBrains CLion IDE for C/C++, это Early Access Program build. Можно использовать в течении 60 дней с даты сборки.
Лицензия лежит просто в *.tar.gz (распакуйте, там есть директория license). Там еще куча всяких third-party tools (http://confluence.jetbrains.com/display/CLION/Third-Party+Software+Used+by+CLion)
Соб-но, основной комментарий в том, что это не совсем JetBrains CLion IDE for C/C++, это Early Access Program build. Можно использовать в течении 60 дней с даты сборки.
Лицензия лежит просто в *.tar.gz (распакуйте, там есть директория license). Там еще куча всяких third-party tools (http://confluence.jetbrains.com/display/CLION/Third-Party+Software+Used+by+CLion)
0
Всё хорошо, но почему на платформе windows CLion поддерживает «только стандартный» mingw? Неужели в 64-битном TDM-GCC mingw «нестандартный»?
0
Есть отличия. Но в целом планируем поддержать: youtrack.jetbrains.com/issue/CPP-668
0
А когда примерно? В EAP ждать не стоит?
0
Пока не подскажу. Будет зависеть от того, насколько активно пользователи будут просить (там вот есть возможность проголосовать за ишью). И насколько много будет других более приоритетных задач.
0
Кстати, может кто ни будь подсказать, как юзать GDB если компиляция проводилась Clang?
Ругается что not in executable format: File format not recognized
Ругается что not in executable format: File format not recognized
0
Какая ОС? Какой файл (библиотечный может)? GDB бандленый или какой-то другой? В общем нам бы побольше деталей. Можно сразу в трекер: youtrack.jetbrains.com/issues/CPP. Постараемся разобраться. Спасибо.
+1
Тот который в комплекте с IDE идет. На самом деле с этой проблемой я сталкивался и до того, при ручной компиляции, в gcc используется ключ -g для дебага, но если с этим же ключом компилировать через Clang, то GDB в упор не распознает бинарник, хотя он исполняется корректно. Если без ключа -g, то GDB дебажит бинарник, но breakpoint который я пытаюсь установить через b
указывает не туда, не на строчку в исходнике.
На пример простой HelloWorld с breakpoint указывающей вывод "Hello World" (С Language)
в консольном GDB мне сообщается что Breakpoint 1 at 0x4027b0: file ../../../../../src/gcc-4.9.0/libgcc/config/i386/cygwin.S line 5
В Clion (C++ Language) мне сообщается вот такое:
Signal: SIGILL (Illegal instruction)
Signal: SIGILL (Illegal instruction)
Process finished with exit code 2147483647
Система Win7 SP1 x86_64 / clang version 3.5 (trunk)/ gcc (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 4.9.0
Я к сожалению не очень хорошо знаю GDB, уповал всегда на умение IDE работать с дебагером
В сети искал, но к сожалению не нашел информации, как подружить Clang и GDB
0
Да, это похожа вот это: llvm.org/bugs/show_bug.cgi?id=13211. К сожалению, существует давно и пока не пофикшена.
0
Ходят слухи, что исправлена еще два года назад (баг по ссылке — RESOLVED FIXED)… Если нет, то надо его переоткрыть с новыми данными.
0
Разобрался, просто надо добавить флаг -dwarf-2, и из консоли GDB дебажит теперь корректно, и тот который у меня в комплекте с mingw32-dwarf2 идет и встроенный в CLion
В самой IDE еще не проверял, но уже хоть что то
В самой IDE еще не проверял, но уже хоть что то
0
У меня на Ubuntu 14.04 на довольно крупном проекте ведет себя очень неотзывчиво, сначала индексировались файлы 15 минут, сейчас на любой введенный символ идет заметный отклик в секунды полторы, автодополнение по ., ->, :: с еще большей задержкой выходит. Зато Go To Definition/Declaration быстро :-)
0
Когда подтупляет на печати символов или автодополнении, попробуйте снять снепшот (http://devnet.jetbrains.com/docs/1087) и заслать нам. Посмотрим, что там происходит.
0
Можно прямо на clion-support слать?
Еще заметил, что у меня с определенной регулярностью валятся StackOverflowError в Event Log (отослал через IDE Fatal Errors прямо внутри CLion).
Еще заметил, что у меня с определенной регулярностью валятся StackOverflowError в Event Log (отослал через IDE Fatal Errors прямо внутри CLion).
0
Да, спасибо. Для связи с нами есть треккер (http://youtrack.jetbrains.com/issues/CPP), саппорт, форум (http://devnet.jetbrains.com/community/clion?view=discussions). Выбирайте, какой удобнее.
0
регулярностью валятся StackOverflowError в Event Log
Не жмоттесь на оперативку. Виделил JVM больше памяти — избавился от 90% ошибок.
0
Тем временем IDE продолжила течь и начала кидать OutOfMemory не через 5 минут, а через 15.
+1
Засылайте exception нам. Разберемся.
+1
CLion у меня не валится пока. Это я к решению проблемы утечек с помощью выделения большего объёма памяти.
0
У меня не течёт CLion (по крайней мере не заметно). Просто ему изначально мало памяти по дефолту выделено, и исключения валятся в лог со скоростью 2-3 в секунду на пустом проекте. В текущем билде нет vmoptions для 32 бит, нужно самому создать его.
0
Тут официальное объяснение, почему так лучше не делать habrahabr.ru/company/JetBrains/blog/236061/#comment_7944287
0
Это сделано для того, что бы у вас было время подумать :-)
+5
Помнится у меня с IDEA + C++Plugin такая же проблема была, на MacOS X
Особенно если Include от boost добавить
Особенно если Include от boost добавить
0
Где-то есть опечатка или неудачный выбор слов, потому что здесь указано
И ещё букву потеряли:
Поправьте, пожалуйста. Спасибо!
CLion includes bundled CMake 2.8.12.2 and GDB 7.8 (except for the Cygwin case on Windows) so you don’t need to install them separately.а в статье написано
Для отладки приложения предполагается использовать GDB 7.6.
И ещё букву потеряли:
Ruby & Ruby on Rail,
Поправьте, пожалуйста. Спасибо!
-2
Надеюсь улутшется поддержка проектов с С++ и Objective C в AppCode.
0
У вас есть опция сборки одного файла, чтобы не собирать все файлы в проекте, а только один, конкретный файл исходников, чтобы на выходе получился объектный файл? В Eclipse CDT это решается панелью Make Targets, а тут я что-то не нашёл.
0
Мы собираем те таргеты, которые нашли в CMakeLists.txt проекта. Run | Edit configurations позволяет посмотреть и настроить текущие конфигурации. Можно сделать конфигурацию и указать нужный таргет. И потом ее выбирать при запуске Run.
0
Радует, что JetBrains взялась за плюсовую среду, наконец-то есть шанс на появление кроссплатформенной среды с человеческим лицом.
+2
Теперь, когда у вас есть плюсовая среда с отладкой, есть ли планы реализации многоязыковой отладки? Т.е. например Java/C++ с JNI, или Python/Cython/C++?
+4
Я не из команды AppCode, скажу в общем — вам ничего не мешает запустить 2 run configurations и дебажить :) Скажем, если оно вместе работает в одной VM, как Java/Nashorn, то IDEA поддерживает совместную отладку (java+js), а вот в перечисленных вами случаях, это может быть как 4-летняя задача youtrack.jetbrains.com/issue/WEB-2099.
Или вы и так в курсе всего, и именно хотите, чтобы CLion сам занимался управлением потоками (типа если в C++ остановились, то ставим на паузу Python) и иметь всего одно окно отладки вместо двух (типа все равно в один момент может быть остановка только в одном месте независимо от VM)?
Или вы и так в курсе всего, и именно хотите, чтобы CLion сам занимался управлением потоками (типа если в C++ остановились, то ставим на паузу Python) и иметь всего одно окно отладки вместо двух (типа все равно в один момент может быть остановка только в одном месте независимо от VM)?
0
Да, именно все в одном, чтобы ставить брейкпоинты где угодно, и прозрачно ходить по Step Into из одного языка в другой и обратно. Как в VS поддержка native+managed отладки. Мне кажется, аналог для JNI в частности уже давно напрашивается.
У меня интерес к этой теме на самом деле не столько даже как пользователя, сколько как автора соответствующей фичи в PTVS — узнать, когда основные конкуренты планируют это реализовывать :)
У меня интерес к этой теме на самом деле не столько даже как пользователя, сколько как автора соответствующей фичи в PTVS — узнать, когда основные конкуренты планируют это реализовывать :)
0
А поддержка кросс-компиляции/нескольких тулчейнов будет? Очень gcc-arm-none-eabi интересует.
+4
И avr, и msp430. И чтобы само понимало, где чьи инклуды лежат. В общем, youtrack.jetbrains.com/issue/CPP-871.
Вот тут точно нет конкурентов. Все эти Keil, IAR, CodeWarrior настолько убоги (и Windows-only), что ими стараешься лишний раз не пользоваться.
А как приятный бонус получим возможность собирать виндовые бинарники под линуксом через MinGW32.
Вот тут точно нет конкурентов. Все эти Keil, IAR, CodeWarrior настолько убоги (и Windows-only), что ими стараешься лишний раз не пользоваться.
А как приятный бонус получим возможность собирать виндовые бинарники под линуксом через MinGW32.
+2
В продуктах JetBrains есть семантическая подсветка? Не получилось с ходу загуглить.
0
UFO just landed and posted this here
Уже много лет имею дело с С++, Visual Studio, Qt Creator, XCode…
Что хотелось бы? Раз уж кросс платформ, то, возможность в MacOS включить быстрые клавиши как в винде и линуксе, т.е. один набор быстрых клавиш на все( пусть это будет не по умолчанию т.к. некоторые клвиши по дефлту используются в маке ( F10, F11 ) -но это отключается )
Далее, самая удобная работа с файлами есть только в XCode — можно легко перенести папку с исходниками, и он просто рекурсивно добавит их! Так же, в случае удаления файла — показывает его крассным в списке — очень удобно( в студии ногу сломишь), далее когда добавляешь файл, то те файлы которые уже есть, они в Finder(аналог Explorera в MacOs) показываются серым(т.к. уже есть) и выбрать можно только те, которых нет в проекте! Это тоже, очень удобно! Не знаю, можно ли этого добиться в Винде или в Линуксе, как вариант можно сделать свой «обзорщик файлов» — задача не архи сложная.
Нормальный дебаг, у Qt Creator и XCode есть одна проблема, они порой не могут понять, какую переменную нужно показать. my_class.some_value.value если на вести мышкой на value — то нифига не увидишь.
Обязательно доступ к памяти — т.е. просмотр памяти, в XCode хреново сделано.
Если что в голову пейредт(так же важное) напишу. Хороший проект, Удачи вам!
Что хотелось бы? Раз уж кросс платформ, то, возможность в MacOS включить быстрые клавиши как в винде и линуксе, т.е. один набор быстрых клавиш на все( пусть это будет не по умолчанию т.к. некоторые клвиши по дефлту используются в маке ( F10, F11 ) -но это отключается )
Далее, самая удобная работа с файлами есть только в XCode — можно легко перенести папку с исходниками, и он просто рекурсивно добавит их! Так же, в случае удаления файла — показывает его крассным в списке — очень удобно( в студии ногу сломишь), далее когда добавляешь файл, то те файлы которые уже есть, они в Finder(аналог Explorera в MacOs) показываются серым(т.к. уже есть) и выбрать можно только те, которых нет в проекте! Это тоже, очень удобно! Не знаю, можно ли этого добиться в Винде или в Линуксе, как вариант можно сделать свой «обзорщик файлов» — задача не архи сложная.
Нормальный дебаг, у Qt Creator и XCode есть одна проблема, они порой не могут понять, какую переменную нужно показать. my_class.some_value.value если на вести мышкой на value — то нифига не увидишь.
Обязательно доступ к памяти — т.е. просмотр памяти, в XCode хреново сделано.
Если что в голову пейредт(так же важное) напишу. Хороший проект, Удачи вам!
+2
Посмотрел IDE
без поддежки компилятора от Visual Studio, это просто игрушка
Вкладки нельзя расположить радом друг с другом(перетаскивая) только в одной плоскости
Жеский Innelice — не удобно когда учитываться регистр
к примеру
GetSomeValue в классе SomeClass
SomeClass s;
s. и когда я пишу 'get' он он ничего не показывает, а нажимать линий раз shift это заморочка.
Еще один момент, есть 2 метода GetCat, GetDog — нужно чтобы можно было писать .cat — и он предлагал GetCat!
без поддежки компилятора от Visual Studio, это просто игрушка
Вкладки нельзя расположить радом друг с другом(перетаскивая) только в одной плоскости
Жеский Innelice — не удобно когда учитываться регистр
к примеру
GetSomeValue в классе SomeClass
SomeClass s;
s. и когда я пишу 'get' он он ничего не показывает, а нажимать линий раз shift это заморочка.
Еще один момент, есть 2 метода GetCat, GetDog — нужно чтобы можно было писать .cat — и он предлагал GetCat!
-9
1. Про вкладки ничего не понял, подробнее опишите.
2. Автодополнение без учёта регистра: Settings->Editor->Editor->Code Completion->Case sensitive completion = None.
3. Поиск по .cat работает из коробки.
2. Автодополнение без учёта регистра: Settings->Editor->Editor->Code Completion->Case sensitive completion = None.
3. Поиск по .cat работает из коробки.
+1
> Поиск по .cat работает из коробки.
так не работает.
void Getcat(){}
void Getdot(){}
> Про вкладки ничего не понял, подробнее опишите.
потянул за владку, и можно было сделать:
gyazo.com/177af85223b3b84e7e0b30ab4b39736a
так не работает.
void Getcat(){}
void Getdot(){}
> Про вкладки ничего не понял, подробнее опишите.
потянул за владку, и можно было сделать:
gyazo.com/177af85223b3b84e7e0b30ab4b39736a
-1
1. Если именно так, то работает после Settings->Editor->Editor->Code Completion->Case sensitive completion = None, но это очень специфичный кейс, вам так не кажется?
2. В CLion имеются операции над вкладками: Move right, Move down, Split vertically, Split horizontally. Если они Вам часто нужны, то можно повесить на них хоткеи в Settings->Appearance and Behavior.
2. В CLion имеются операции над вкладками: Move right, Move down, Split vertically, Split horizontally. Если они Вам часто нужны, то можно повесить на них хоткеи в Settings->Appearance and Behavior.
+2
Еще, если 2 раза нажать шифт — то появляется окошко поиска по файлам — удобно, было бы супер учитывать не ТОЛЬКО 1 шифт, а так же левый и правый, чтобы можно было одновременно нажать 2 шифта — просто двойное нажатие не привычно, особенно мизинцем
>но это очень специфичный кейс, вам так не кажется?
Именно с getcat да, а вообще не учитывать регистр — это не знаю (VissualAssist по дефолту не учитывает, а это Musthave в мире C++)
> Move right, Move down, Split vertically, Split horizontally
Ребят фишка в чем, писать «широкий код» плохо, обычно не больше 80 в ширину. И вот на «обычном» full hd мониторе, практически половина места получается пустой!
Именно по этому, удобно использовать экран разделенный на 2
вот, сделал (живой) скриншот: gyazo.com/df62e34cd54ed77c8a8f1ed415798e08
>но это очень специфичный кейс, вам так не кажется?
Именно с getcat да, а вообще не учитывать регистр — это не знаю (VissualAssist по дефолту не учитывает, а это Musthave в мире C++)
> Move right, Move down, Split vertically, Split horizontally
Ребят фишка в чем, писать «широкий код» плохо, обычно не больше 80 в ширину. И вот на «обычном» full hd мониторе, практически половина места получается пустой!
Именно по этому, удобно использовать экран разделенный на 2
вот, сделал (живой) скриншот: gyazo.com/df62e34cd54ed77c8a8f1ed415798e08
0
1. Насколько мне известно, эта комбинация не кастомизируема. Если считаете, что удобнее два shift жать — создайте issue, обоснуйте и получите. Но это очень тонкий вопрос, вряд ли аргументы подберёте, хотя кастомизацию этой комбинации можно попробовать выпросить.
2. По поводу Must have опять таки терзают меня сомнения, мне никогда такое не требуется и действительно полезный кейс сходу в голову не приходит. Если ищу по слову, то слово отделено от других каким-либо разделением.
3. Сам часто работаю либо в вертикальной ориентации монитора, либо с разделением. Если используется разделение, то его достаточно сделать один раз и далее перекидывать вкладки хоть хоткеями, хоть мышкой.
По поводу комментария ниже. Обычно надо не открытый .h файл держать, а синхронизировать изменения в .cpp с .h. Как эта синхронизация будет осуществляться в CLion ещё не вникал, но у меня на неё большие надежды возложены:-)
2. По поводу Must have опять таки терзают меня сомнения, мне никогда такое не требуется и действительно полезный кейс сходу в голову не приходит. Если ищу по слову, то слово отделено от других каким-либо разделением.
3. Сам часто работаю либо в вертикальной ориентации монитора, либо с разделением. Если используется разделение, то его достаточно сделать один раз и далее перекидывать вкладки хоть хоткеями, хоть мышкой.
По поводу комментария ниже. Обычно надо не открытый .h файл держать, а синхронизировать изменения в .cpp с .h. Как эта синхронизация будет осуществляться в CLion ещё не вникал, но у меня на неё большие надежды возложены:-)
0
>хотя кастомизацию этой комбинации можно попробовать выпросить.
Че за бред? Вы думаете оно мне надо?
У меня есть все что нужно для работы, Мое дело работать, а не ходить по «каким-то» сайтам, и выклянчивать фишечки в проект которым судя по состоянию я еще долго пользоваться не смогу.
Единственное чем интересен мне этот проект, что его делают наши, и хотелось бы их поддержать, и сказать свое мнение(человека который уже много лет проф. работает ТОЛЬКО на с++ )
если смежите дать необходимый минимум, то только тогда, люди которые работают — а небалуются, обратят на это внимание.
Че за бред? Вы думаете оно мне надо?
У меня есть все что нужно для работы, Мое дело работать, а не ходить по «каким-то» сайтам, и выклянчивать фишечки в проект которым судя по состоянию я еще долго пользоваться не смогу.
Единственное чем интересен мне этот проект, что его делают наши, и хотелось бы их поддержать, и сказать свое мнение(человека который уже много лет проф. работает ТОЛЬКО на с++ )
если смежите дать необходимый минимум, то только тогда, люди которые работают — а не
-7
В дополнение к разделению экрана хотел сказать, что в мире java, c# это может не так удобно, а вот в с++ есть же .h и .cpp обычно разделение идет именно между ними.
0
разделение там есть, просто нет возможности его активировать перетаскиванием мышкой за таб, — из контекстного меню активируется легко и можно для одного файла даже несколько табов сделать
0
Такая штука уже довольно давно в трекере AppCode обсудается (http://youtrack.jetbrains.com/issue/OC-2581). Можете добавить голос)
В целом между .h и .cpp можно переходить с помощь Go to Related File действия (ну и в выбранной keymap будет key-binding на него, ест-но). + Navigate to Declaration/Definition, Go to superclass и другие действия по навигации.
В целом между .h и .cpp можно переходить с помощь Go to Related File действия (ну и в выбранной keymap будет key-binding на него, ест-но). + Navigate to Declaration/Definition, Go to superclass и другие действия по навигации.
0
Участвовал в программе EAP, вчера скачал публичную версию, ни в первом ни во втором случае, не заработало отображение STL-контейнеров.
В саппорт писал и скриншот прилагал, мысль была в том, чтобы в IDE просто настроили разрешение подгрузки своих настроек для gdb, например, из .gdbinit, как в netbeans или из отдельного окна, как в qtcreator, иначе так не поотлаживаешься…
В саппорт писал и скриншот прилагал, мысль была в том, чтобы в IDE просто настроили разрешение подгрузки своих настроек для gdb, например, из .gdbinit, как в netbeans или из отдельного окна, как в qtcreator, иначе так не поотлаживаешься…
+1
А можно ли как-то задать аргументы, с которыми CLion будет запускать CMake для моего проекта?
0
Прямо команде передать аргументы пока нельзя (http://youtrack.jetbrains.com/issue/CPP-188). Но можно стандартные параметры задавать в CMakeLists.txt или выставлять в CMakeCache (есть вкладка в окошке tool window). Если хочется свои добавить параметры, то через workaround добавляете параметры и выставляете их в CMakeCache.
0
Интересно, а можно ему подсунуть фиктивный CMakeLists.txt?
Примерно с таким содержанием:
1. установка всех параметров, которые обычно в командной строке передаются
2. установка build path, а то CLion все прячет в свой .clion/system/…
3. include настоящего CMakeLists.txt
Примерно с таким содержанием:
1. установка всех параметров, которые обычно в командной строке передаются
2. установка build path, а то CLion все прячет в свой .clion/system/…
3. include настоящего CMakeLists.txt
0
По идее должно сработать. Попробуйте и поделитесь опытом )
Еще кстати есть вариант через add_subdirectory.
Еще кстати есть вариант через add_subdirectory.
0
Пункты 1 и 3 сработали. Понадобилось всего две строчки:
1. set(CMAKE_SOURCE_DIR моя_папка)
2. subdirs (моя_папка)
В итоге проект смог завестись.
Но некоторые критические вещи побороть пока не смог:
1. Отключить генерацию разных build_type. Я не понимаю с разными работать. И мне оно совсем не нужно. Я всегда пользуюсь только одним. Если я захочу поменять -> то я его этот один поменяю и всё равно продолжу пользоваться всегда одним.
2. Как следствие первого -> переместить build_dir в моё место. Сейчас это глубоко в .clion/system/cmake/…
3. Добавить все .h файлы в проект. В ютрекере пишут что надо их добавлять в cmake, но я не понимаю зачем. cmake генерирует Makefile со всеми зависимостями от .h файлов. То есть самому cmake они не нужны. Не понимаю что мешает CLion считать хедеры внутри папки проекта — проектными файлами.
4. Скомпилять весь проект. Сейчас CLion предлагает мне компилять каждый из моих 200 таргетов по одному. Я просто с ума сойду тыкать на столько кнопок. А как только я поменял один .cpp файл мне всё это перетыкивать опять? Раньше я вызывал 'make -j', но теперь это затруднительно, т.к. build_dir неизвестно где (см. пункт 1).
1. set(CMAKE_SOURCE_DIR моя_папка)
2. subdirs (моя_папка)
В итоге проект смог завестись.
Но некоторые критические вещи побороть пока не смог:
1. Отключить генерацию разных build_type. Я не понимаю с разными работать. И мне оно совсем не нужно. Я всегда пользуюсь только одним. Если я захочу поменять -> то я его этот один поменяю и всё равно продолжу пользоваться всегда одним.
2. Как следствие первого -> переместить build_dir в моё место. Сейчас это глубоко в .clion/system/cmake/…
3. Добавить все .h файлы в проект. В ютрекере пишут что надо их добавлять в cmake, но я не понимаю зачем. cmake генерирует Makefile со всеми зависимостями от .h файлов. То есть самому cmake они не нужны. Не понимаю что мешает CLion считать хедеры внутри папки проекта — проектными файлами.
4. Скомпилять весь проект. Сейчас CLion предлагает мне компилять каждый из моих 200 таргетов по одному. Я просто с ума сойду тыкать на столько кнопок. А как только я поменял один .cpp файл мне всё это перетыкивать опять? Раньше я вызывал 'make -j', но теперь это затруднительно, т.к. build_dir неизвестно где (см. пункт 1).
0
Номер 3 победил так:
FILE (GLOB_RECURSE clion_all_headers ${CMAKE_SOURCE_DIR}/*.h)
ADD_CUSTOM_TARGET(all_clion
SOURCES ${clion_all_headers}
)
0
1. Не совсем поняла.
2. укажите в CMake файле, какой build_dir через CMAKE_RUNTIME_OUTPUT_DIRECTORY (позже вероятно сделаем это как-то через IDE — http://youtrack.jetbrains.com/issue/CPP-96)
3. Пока что надо включать в CMake (http://youtrack.jetbrains.com/issue/CPP-270). Есть приятный бонус от CMake — если включаете .cpp, то .h с таким же именем не надо включать.
4. Есть такая проблема (http://youtrack.jetbrains.com/issue/CPP-158). Заходите повоутить.
2. укажите в CMake файле, какой build_dir через CMAKE_RUNTIME_OUTPUT_DIRECTORY (позже вероятно сделаем это как-то через IDE — http://youtrack.jetbrains.com/issue/CPP-96)
3. Пока что надо включать в CMake (http://youtrack.jetbrains.com/issue/CPP-270). Есть приятный бонус от CMake — если включаете .cpp, то .h с таким же именем не надо включать.
4. Есть такая проблема (http://youtrack.jetbrains.com/issue/CPP-158). Заходите повоутить.
0
1. А, все, поняла о чем Вы. Утро, сорри)
Мы генерируем проект для всех CMAKE_ BUILD_TYPE (Debuge, Release, MinRelease etc).
Соответственно, пока такой возможности нет, но можно описать свой кейс здесь: youtrack.jetbrains.com/issue/CPP-812
Мы генерируем проект для всех CMAKE_ BUILD_TYPE (Debuge, Release, MinRelease etc).
Соответственно, пока такой возможности нет, но можно описать свой кейс здесь: youtrack.jetbrains.com/issue/CPP-812
0
anastasiak2512, если не секрет расскажите, сколько разработчиков сейчас занимается только CLion.
+1
Команда на два продукта AppCode и CLion — общая. Да и код-база сильно пересекается. Так что совсем только один CLion делать все равно не получается. А ведь есть еще платформа, которую много людей делает, так что их тоже надо учитывать.
Вообще в команде 12 человек. Один из них правда только вчера пришел ) А еще один всего неделю назад. Так что мы растем!
Вообще в команде 12 человек. Один из них правда только вчера пришел ) А еще один всего неделю назад. Так что мы растем!
+4
Для запуска под Win 32bit:
— Устанавливаем JRE;
— Переходим в папку JetBrains\CLion 138.1965.18\bin\;
— Внутри clion.bat в начале файла до метки :jdk указываем SET JDK=c:\Program Files\Java\jre1.8.0_20\, остальные условия отключаем;
— В этом же файле заменяем SET BITS= на SET BITS=32
— Делаем копию файла clion64.exe.vmoptions с именем clion32.exe.vmoptions
— Внутри clion32.exe.vmoptions меняем -Xmx2000m на -Xmx1000m, а также yjpagent64 на yjpagent
Запускаем через clion.bat.
— Устанавливаем JRE;
— Переходим в папку JetBrains\CLion 138.1965.18\bin\;
— Внутри clion.bat в начале файла до метки :jdk указываем SET JDK=c:\Program Files\Java\jre1.8.0_20\, остальные условия отключаем;
— В этом же файле заменяем SET BITS= на SET BITS=32
— Делаем копию файла clion64.exe.vmoptions с именем clion32.exe.vmoptions
— Внутри clion32.exe.vmoptions меняем -Xmx2000m на -Xmx1000m, а также yjpagent64 на yjpagent
Запускаем через clion.bat.
+3
Мои пять копеек.
На маленьком проекте достаточно неотзвчив. Точнее как, видно что используется clang для индексации/автодополнение. Поведение почти совпадает с оным у QtC при включенном Clang парсере.
Сгенерированный getter/setter для
получился таким:
никто не забыт, ничто не забыло :)
Далее, заметил, что не различаются. и -> в автодополнении, т.е. код:
не показывает дополнение в виде методов reset() и иже с ними. Для следующего кода показывается только а в обоих случаях:
Не совсем понятно, зачем в кодогенерации делать деструктор виртуальным по умолчанию.
Хотелось бы увидеть в кодогенерации генерацию стабов для копирования/перемещения объекта
При кодогенерации конструктора с одним параметром неплохо было бы делать его explicit.
Очень понравилось как сделана кодогерация для Override methods.../Implement methods… Но через Override methods можно реализовать и pure-virtual метод, а к нему так же добавляется override. Не криминал, но есть неконсистентность.
Рефакторинг, изменение сигнатуры функции: Preview и Refactor кнопки работают одинаково :) Кроме того, если мы хотим сменить сигнатуру метода, который идёт от базового класса, предлагается поменять его в базовом. Это хорошо, но если есть два и более наследника, сигнатура меняется только в том классе, в котором мы инициировали изменение и в базовом. Другие наследники не затрагиваются.
Подстветка синтаксиса поперхнулась на Лямбдах: habrastorage.org/files/900/3a2/1b4/9003a21b4fa2401db20350e07f460165.png
Говорит об синтаксической ошибке в написании слова chrono в std::chrono :-)
Контекстная справка, типа как в QtC по F1, я там прикрутил stdlib и STL очень удобно. Тут можно подобное сделать?
Вот такому коду не смог сделать Refactor->Extract->Method:
А для такого:
Предложил метод с сигнатурой:
Перед данным блоком было:
тип:
Шрифты в Linux тоже не ахти как рендерятся. На скрине выше видно.
Ну как-то так… Пока пользоваться не буду только из-за отзывчивости.
На маленьком проекте достаточно неотзвчив. Точнее как, видно что используется clang для индексации/автодополнение. Поведение почти совпадает с оным у QtC при включенном Clang парсере.
Сгенерированный getter/setter для
std::string m_foo;
получился таким:
basic_string<char, char_traits<_CharT>, allocator<_CharT>> const &foo() const
{
return m_foo;
}
void setFoo(basic_string<char, char_traits<_CharT>, allocator<_CharT>> const &foo)
{
m_foo = foo;
}
никто не забыт, ничто не забыло :)
Далее, заметил, что не различаются. и -> в автодополнении, т.е. код:
std::unique_ptr<int> a(new int);
a.
не показывает дополнение в виде методов reset() и иже с ними. Для следующего кода показывается только а в обоих случаях:
struct Foo { int a; };
std::unique_ptr<Foo> b{new Foo};
b.
b->
Не совсем понятно, зачем в кодогенерации делать деструктор виртуальным по умолчанию.
Хотелось бы увидеть в кодогенерации генерацию стабов для копирования/перемещения объекта
При кодогенерации конструктора с одним параметром неплохо было бы делать его explicit.
Очень понравилось как сделана кодогерация для Override methods.../Implement methods… Но через Override methods можно реализовать и pure-virtual метод, а к нему так же добавляется override. Не криминал, но есть неконсистентность.
Рефакторинг, изменение сигнатуры функции: Preview и Refactor кнопки работают одинаково :) Кроме того, если мы хотим сменить сигнатуру метода, который идёт от базового класса, предлагается поменять его в базовом. Это хорошо, но если есть два и более наследника, сигнатура меняется только в том классе, в котором мы инициировали изменение и в базовом. Другие наследники не затрагиваются.
Подстветка синтаксиса поперхнулась на Лямбдах: habrastorage.org/files/900/3a2/1b4/9003a21b4fa2401db20350e07f460165.png
Говорит об синтаксической ошибке в написании слова chrono в std::chrono :-)
Контекстная справка, типа как в QtC по F1, я там прикрутил stdlib и STL очень удобно. Тут можно подобное сделать?
Вот такому коду не смог сделать Refactor->Extract->Method:
if (pid < 0) // fork error
exit(2);
if (pid > 0) // parent exit
exit(0);
А для такого:
for (auto const &record : records)
{
const uint64_t id = get<0>(record);
const string& name = get<1>(record);
// skip
}
Предложил метод с сигнатурой:
void processRecords(vector<tuple<_T1, _T2>> const records)
Перед данным блоком было:
auto const records = gApp.m_dao->incompleteChunks();
тип:
std::vector<std::tuple<uint64_t, string>>
Шрифты в Linux тоже не ахти как рендерятся. На скрине выше видно.
Ну как-то так… Пока пользоваться не буду только из-за отзывчивости.
+2
Давайте разбираться по порядку:
Про неотзывчивость — а можете cpu snapshot снять (здесь вот написано как devnet.jetbrains.com/docs/1087)? И очень бы хотелось (если сможете) sample project, потому что от проекта много чего зависит. Бывают небольшие, но очень навороченные проекты, с кучей перегруженных методов, лямбд, и пр. Можно попробовать память увеличить IDE (https://intellij-support.jetbrains.com/entries/23395793), возможно, станет лучше.
1. getter/setter генерация и строки — youtrack.jetbrains.com/issue/CPP-743. Известная была проблема, не успели доделать до публичного EAP. Попадет в следующий билд.
2. Первый комплишен — похоже бага. Завели в трекер youtrack.jetbrains.com/issue/CPP-907. Спасибо
3. " не различаются. и -> в автодополнении" — это фича. После комплишена всегда подставится нужное — "." или "->". При этом в списке комплишена показываются варианты для обоих случаев.
4. Про генерацию — добавьте, пожалуйста, фичу в треккер с примерами: youtrack.jetbrains.com/issues/CPP.
5. Про изменение сигнатуры очень полезные комментарии.Спасибо! Завели две баги: youtrack.jetbrains.com/issue/CPP-910 и youtrack.jetbrains.com/issue/CPP-911
6. лямбды тоже в треккере: youtrack.jetbrains.com/issue/CPP-912. Вы не против, что мы туда Ваши скриншот приложили?
7. В CLion есть quick documentation (тоже по F1). Оно пока в начальном состоянии. Есть куда улучшать: youtrack.jetbrains.com/issue/OC-9836
8. «не смог сделать Refactor->Extract->Method» — у кода нет точки выхода в некоторых случаях. Есть третья ветка, не описанная в коде, поэтому и не срабатывает. Если написать:
То сработает.
9. Можете пример с records целиком в ишью положить в треккере? (Например, воспроизвести на минимальном проекте)?
Вот как-то так. Проблемы есть. Будем решать их по мере возможностей дальше.
Про неотзывчивость — а можете cpu snapshot снять (здесь вот написано как devnet.jetbrains.com/docs/1087)? И очень бы хотелось (если сможете) sample project, потому что от проекта много чего зависит. Бывают небольшие, но очень навороченные проекты, с кучей перегруженных методов, лямбд, и пр. Можно попробовать память увеличить IDE (https://intellij-support.jetbrains.com/entries/23395793), возможно, станет лучше.
1. getter/setter генерация и строки — youtrack.jetbrains.com/issue/CPP-743. Известная была проблема, не успели доделать до публичного EAP. Попадет в следующий билд.
2. Первый комплишен — похоже бага. Завели в трекер youtrack.jetbrains.com/issue/CPP-907. Спасибо
3. " не различаются. и -> в автодополнении" — это фича. После комплишена всегда подставится нужное — "." или "->". При этом в списке комплишена показываются варианты для обоих случаев.
4. Про генерацию — добавьте, пожалуйста, фичу в треккер с примерами: youtrack.jetbrains.com/issues/CPP.
5. Про изменение сигнатуры очень полезные комментарии.Спасибо! Завели две баги: youtrack.jetbrains.com/issue/CPP-910 и youtrack.jetbrains.com/issue/CPP-911
6. лямбды тоже в треккере: youtrack.jetbrains.com/issue/CPP-912. Вы не против, что мы туда Ваши скриншот приложили?
7. В CLion есть quick documentation (тоже по F1). Оно пока в начальном состоянии. Есть куда улучшать: youtrack.jetbrains.com/issue/OC-9836
8. «не смог сделать Refactor->Extract->Method» — у кода нет точки выхода в некоторых случаях. Есть третья ветка, не описанная в коде, поэтому и не срабатывает. Если написать:
if (pid < 0)
exit(2);
else
exit(0);
То сработает.
9. Можете пример с records целиком в ишью положить в треккере? (Например, воспроизвести на минимальном проекте)?
Вот как-то так. Проблемы есть. Будем решать их по мере возможностей дальше.
+4
Анастасия, по некоторым пунктам чуть позже ответы подготовлю, пока небольшие ремарки и уточнения:
В тексте описания ошибка, у вас
Сомнительная фича. Ок, если что составлю фича-реквест.
Пока не зарегестрировался, попросите не закрывать. Сампл приготовлю.
Не против, главное что бы не хуже IDEA для Java получилось :)
Ок. Странно, но ладно.
Подготовлю.
Спасибо, что не вынуждаете регистрироваться в трекере, хотя бы для багов.
2. Первый комплишен — похоже бага. Завели в трекер youtrack.jetbrains.com/issue/CPP-907. Спасибо
В тексте описания ошибка, у вас
std::unique_ptr<Foo>
а должен int
быть.При этом в списке комплишена показываются варианты для обоих случаев.
Сомнительная фича. Ок, если что составлю фича-реквест.
youtrack.jetbrains.com/issue/CPP-910
Пока не зарегестрировался, попросите не закрывать. Сампл приготовлю.
Вы не против, что мы туда Ваши скриншот приложили?
Не против, главное что бы не хуже IDEA для Java получилось :)
Есть третья ветка, не описанная в коде, поэтому и не срабатывает.
Ок. Странно, но ладно.
9. Можете пример с records целиком в ишью положить в треккере? (Например, воспроизвести на минимальном проекте)?
Подготовлю.
Вот как-то так. Проблемы есть. Будем решать их по мере возможностей дальше.
Спасибо, что не вынуждаете регистрироваться в трекере, хотя бы для багов.
0
1. std::unique_ptr а должен int быть — ну в целом то не важно, какой там тип.
2. Пока не зарегестрировался, попросите не закрывать. Сампл приготовлю. — добавьте зампл и переоткроем.
Трекер вообще штука хорошая ) он позволяет нам понять, какие фичи реквесты самые популярные и значимые для пользователей. Так что головалка там не просто так.
2. Пока не зарегестрировался, попросите не закрывать. Сампл приготовлю. — добавьте зампл и переоткроем.
Трекер вообще штука хорошая ) он позволяет нам понять, какие фичи реквесты самые популярные и значимые для пользователей. Так что головалка там не просто так.
0
А плагин поддержки C|C++ в IntelliJ IDEA есть? Планируется?
0
Подскажите, можно ли по какому-то хоткею увидеть реальное имя типа сквозь все алиасы? Вроде того, как gcc/clang пишут f(T t), [T = std::size_t aka unsigned long long].
Хочется проверить, как автодополнение будет вести себя на сложных шаблонах с метапрограммированием.
Хочется проверить, как автодополнение будет вести себя на сложных шаблонах с метапрограммированием.
0
Я послушал бы, как Вы сделали препроцессор. Не один язык его требует. Не думали сделать общую доку по этому поводу.
0
Как правильно называть-то? «Силайон»? «Клайон»? «Слион» («слон»)? «Клион»?
+1
А будет ли поддержка gradle как у Idea?
0
А вы не планируете сделать C# IDE в качестве альтернативы VisualStudio?
0
Вряд ли. Тем более, что у нас еще есть ReSharper C++
+1
Кстати, а кодовая база у CLion и ReSharper C++ одна? Как вообще решали такой вопрос — вроде похожие вещи выполняют (интеллектуальная работа с C++ кодом), но должны работать в разных средах (ReSharper C++ под Win и как плагин в VS, а CLion как самостоятельная кроссплатформенная среда разработки).
0
Эх, очень жаль. Думаю, был бы хороший спрос.
+2
UFO just landed and posted this here
UFO just landed and posted this here
А когда выйдет система контроля версий от JetBrains?
-2
Однако, на удивление без пинков запустилось на FreeBSD 11-CURRENT (i386) и даже собрало/запустило hello world (cmake/gdb я сразу перенастроил на системные). Правда затем, при попытке собрать стеллариум, вся среда подвисла: окна не рисуются, ни на что не реагируют, хотя java вроде чувствует себя хорошо (1378M/808M/uwait судя по
top(1)
из доступных 3 гигов ОЗУ).0
CPU snapshot снимите, пожалуйста, и пришлите нам.
0
Я бы с удовольствием, но под FreeBSD в меню Tools (и на тулбаре) почему-то есть только Capture Memory Snapshot.
0
Спрошу на всякий случай — а вы выполнили те действия, которые написаны в инструкции, чтобы такой пункт в меню появился?
0
Вы правы, я хоть и добавил строчку
Я слинковал на него
-agentlib:yjpagent
в конец bin/clion64.vmoptions
(это единственный файл с таким расширением), не посмотрел на число 64, а ведь у меня 32-битная система.Я слинковал на него
clion.vmoptions
(а также libyjpagent.so -> libyjpagent-linux.so
), и теперь при запуске sh clion.sh
оно ругается (т.к. сошка линуксовая):Could not find agent library yjpagent on the library path, with error: Shared object «libm.so.6» not found, required by «libyjpagent.so»Эх, видимо, придется все-таки использовать Linux-версию JDK.
0
Уточнение: при использовании FreeBSD'шной нативной libyjpagent.so, java падает в корку. :-( В общем, надо разбираться…
0
Увы, поставил из портов
А вот шрифты в тех диалогах, что удается увидеть, стали поприятнее. :-)
java/linux-oracle-jdk18
, запускаю как env CL_JDK=/usr/local/linux-oracle-jdk1.8.0 sh clion.sh
, теперь java.lang.OutOfMemoryError
во все поля при любых настройках.А вот шрифты в тех диалогах, что удается увидеть, стали поприятнее. :-)
0
perl?
-1
Как насчет поддержки параллельного программирования: OpenMP, CUDA/OpenCL, pthread…?
Также интересует возможность интегрирования сторонних компиляторов, например от Интел.
Также интересует возможность интегрирования сторонних компиляторов, например от Интел.
0
anastasiak2512, реализация поддержки qmake будет автоматически обозначать поддержку компилятора MS VC или это отдельная фича? Что входит в реализацию «Build tool»?
0
Microsoft Visual C++ это вообще не к нам, это скорее к ReSharper C++. Сейчас не понятна надобность его поддерживать в CLion.
Но другие компиляторы со временем тоже будут поддерживаться. В поддержку входит парсинг сообщений от компилятора в IDE и понимание путей до include-ов и другой полезной информации.
Но другие компиляторы со временем тоже будут поддерживаться. В поддержку входит парсинг сообщений от компилятора в IDE и понимание путей до include-ов и другой полезной информации.
0
Термин Build tool я взял из issue: youtrack.jetbrains.com/issue/CPP-274 И имел ввиду qmake, GNU Make и т.п.
0
Билд-система в IDE означает, что IDE позволяет открывать соответствующие проекты, понимает их структуру, умеет делать какие-то автоматические действия с этой структурой, берет из соответствующих файлов (в случае CMake — CMakeLists.txt) информацию о параметрах, таргетах, опциях компиляции (С++11, например) и др. Плюс IDE знает о каких-то особенностях билд-системы и с ними умеет работать (например, для CMake — это работа с CMakeCache сейчас).
+1
Специально для своего проекта по докторской написал CMakeLists.txt (использовал Makefile). Чуть-чуть поковырял и первое впечатление очень хорошее :)
Раньше совместно с cmake использовал netbeans, но он что-то начал есть память… Потом перешел на Eclipse + make. Потом сполз в vim.
Буду смотреть дальше. Порадовала возможность быстрой установки плагинов (понадобилось для подсветки в Lua)
Раньше совместно с cmake использовал netbeans, но он что-то начал есть память… Потом перешел на Eclipse + make. Потом сполз в vim.
Буду смотреть дальше. Порадовала возможность быстрой установки плагинов (понадобилось для подсветки в Lua)
0
Установил версию для Windows. Не могу настроить mingw toolchain. mingw установлен в C:\mingw, указываю этот путь в поле «Use MinGW home», пишет «MinGW not found». Можно узнать подробнее какой конкретно MinGW нужен и как определяется его наличие в каталоге? Может там каких файлов у меня не хватает.
0
MinGW not found скорее всего означает проблему с определением версии. MinGW поддерживается только 3.20. Ну и Mingw-64 не поддерживаем (http://youtrack.jetbrains.com/issue/CPP-668)
При этом известны вот такие проблемы: http://youtrack.jetbrains.com/issue/CPP-785 от пользователей. Но мы сегодня честно целый день пытались, так и не смогли воспроизвести. Но возможно у вас тоже заработает mingw с sourceforge ветки, а не с mingw.org
При этом известны вот такие проблемы: http://youtrack.jetbrains.com/issue/CPP-785 от пользователей. Но мы сегодня честно целый день пытались, так и не смогли воспроизвести. Но возможно у вас тоже заработает mingw с sourceforge ветки, а не с mingw.org
0
Под Linux системный gcc определился, простые проекты собирает. А есть возможность указать опции cmake, которые будут использоваться при конфигурации проекта? Без указания опций мой проект не собирается (cmake завершается с ошибкой).
0
View -> Tool Windows -> CMake и в появившемся окошке вкладка Cache
0
Там можно менять только то, что есть в сгенерированном кэше cmake. Добавить переменные я туда не могу.
Мне надо запускать проект с несколькими опциями примерно так:
cmake -DVAR1=value1 -DVAR2=value2 <path_to_sources>
Переменных VAR1 и VAR2 в кэше нету.
Мне надо запускать проект с несколькими опциями примерно так:
cmake -DVAR1=value1 -DVAR2=value2 <path_to_sources>
Переменных VAR1 и VAR2 в кэше нету.
0
0
Ну первый вариант подходит только для тестирования по понятным причинам: добавлять установку этих переменных в сам проект нельзя, они зависят от среды сборки.
Второй вариант может работать, но это неудобно, и не факт что всегда будет работать. Т. е. сначала будет запускаться cmake, отрабатывать наполовину, создавать половину кэша, потом пользователь вручную добавляет нужные переменные в кэш, потом перезапускает cmake.
Проще было бы, если бы была возможность задать параметры cmake (как в QtCreator). Ну и каталог сборки неплохо было бы самому выбирать, а то сейчас это всё прячется где-то в ~/.clion10
Второй вариант может работать, но это неудобно, и не факт что всегда будет работать. Т. е. сначала будет запускаться cmake, отрабатывать наполовину, создавать половину кэша, потом пользователь вручную добавляет нужные переменные в кэш, потом перезапускает cmake.
Проще было бы, если бы была возможность задать параметры cmake (как в QtCreator). Ну и каталог сборки неплохо было бы самому выбирать, а то сейчас это всё прячется где-то в ~/.clion10
0
Понятно, что есть более простой вариант. Соб-но, есть таски в трекере на это: параметры окружения передавать в cmake и добавлять кастомные перменные из IDE в cache.
0
Спасибо!
Два важных вопроса:
1) Плагин для удобной сборки ядра Linux планируете разрабатывать? :)
2) Почему талисман — морской котик?
Два важных вопроса:
1) Плагин для удобной сборки ядра Linux планируете разрабатывать? :)
2) Почему талисман — морской котик?
0
На windows с первой попытки не заработало
открыл примерно такой cmake list
Error:Environment is not selected
+ в ивентах ошибка для hg 9:23:50 Could not execute hg status command: [abort: path contains illegal component: .hg\wlock]
mingw на машине нет, хотелось посмотреть функционал cmake
открыл примерно такой cmake list
cmake_minimum_required(VERSION 2.8)
project(SomeName)
include(Settings)
SET(BUILD_SHARED_LIBS)#pugixml
ADD_SUBDIRECTORY(${LIBS_DIR}/pugixml/scripts/)
ADD_SUBDIRECTORY(${SOURCES_DIR}/SomeName1/)
ADD_SUBDIRECTORY(${SOURCES_DIR}/SomeName2/)
ADD_SUBDIRECTORY(${SOURCES_DIR}/SomeName3/)
Error:Environment is not selected
+ в ивентах ошибка для hg 9:23:50 Could not execute hg status command: [abort: path contains illegal component: .hg\wlock]
mingw на машине нет, хотелось посмотреть функционал cmake
0
Ubuntu 14.04, GCC 4.8.2, при сборке через консоль все ок, при сборке через CLion на этапе линковки начинает ругаться на статический константный член в паре классов, мол нет определения, только объявление, хотя по стандарту все ок.
Ума не приложу, почему так происходит, собираю из одного и того же CMakeLists.txt. Правда я такую штуку уже наблюдал за GCC, когда такой код валился на этапе линковки:
static constexpr double = 10.0;
, а такой нет:
static constexpr auto = 10.0;
Но какие могут быть различия во флагах при сборке через cmake --build. --target target-name в консоли и CLion, кроме того что разный CMake используется (забандленный против системного)?
Ума не приложу, почему так происходит, собираю из одного и того же CMakeLists.txt. Правда я такую штуку уже наблюдал за GCC, когда такой код валился на этапе линковки:
static constexpr double = 10.0;
, а такой нет:
static constexpr auto = 10.0;
Но какие могут быть различия во флагах при сборке через cmake --build. --target target-name в консоли и CLion, кроме того что разный CMake используется (забандленный против системного)?
0
Сейчас вот проверила на макоси — проблемы нет. Можете зарепортить в трекер с проектом небольшим для примера и описанием environment-а, который используется?
0
Пока не получается воспроизвести в маленьком проекте.
Тут видимо какой-то косяк кода или компилятора, вопрос только в том, почему он провляется не всегда.
В моем случае определение не нужно, поскольку константа используется только внутри типа, и in-class initialization + constant propagation должны работать по стандарту.
Объявление было бы нужно, если бы где-то например брался адрес этой константы, но таких мест в коде нет.
Тут видимо какой-то косяк кода или компилятора, вопрос только в том, почему он провляется не всегда.
В моем случае определение не нужно, поскольку константа используется только внутри типа, и in-class initialization + constant propagation должны работать по стандарту.
Объявление было бы нужно, если бы где-то например брался адрес этой константы, но таких мест в коде нет.
0
Прошла пара дней использования CLion вместо QtCreator'а на собственном проекте (подменять им вторую используемую среду aka Source Insight не стал — пункты 2 создает слишком много мусора в чужих проектах, пункты 1 и 3 снижают привычный уровень читабельности чужого кода). Многое понравилось, есть и пожелания/вопросы:
1. Не нашел, как вынести quick definition в отдельное окно наподобие того, как это делает Source Insight. (да, он еще и некую схему взаимосвязей показывает, но для работы над своими проектами это оверкилл, вот чужие им смотреть — перебор). А хотелось бы. Всплывающее окно — неудобно.
2. CMake должен быть отключаем в пользу «никакой» системы сборки. ) поддержка qbs'а из коробки не столь важна.
3. И хотелось бы видеть «кальку» на самую гиковскую фичу Source Insight — отображение логических операторов в их абстрактном виде (!= в виде ˜, && как • итд), (можно еще вспомнить emacs'овский pretty-symbols, делающий примерно то же + всякие извращения в виде подмен lambda => λ итд).
1. Не нашел, как вынести quick definition в отдельное окно наподобие того, как это делает Source Insight. (да, он еще и некую схему взаимосвязей показывает, но для работы над своими проектами это оверкилл, вот чужие им смотреть — перебор). А хотелось бы. Всплывающее окно — неудобно.
2. CMake должен быть отключаем в пользу «никакой» системы сборки. ) поддержка qbs'а из коробки не столь важна.
3. И хотелось бы видеть «кальку» на самую гиковскую фичу Source Insight — отображение логических операторов в их абстрактном виде (!= в виде ˜, && как • итд), (можно еще вспомнить emacs'овский pretty-symbols, делающий примерно то же + всякие извращения в виде подмен lambda => λ итд).
0
Не по порядку, но про все:
2. На какую-то систему сборки мы всегда будем полагаться, будь то CMake или какая-то другая, которую мы поддержим. Файлы, которые ни в каком проекте, открыть конечно в IDE можно (File | Open), но никакие smart действия (умный комплишен, рефакторинг, анализ кода, др.) там будут не возможны, просто потому что у IDE не будет полной картины.
1. В целом не очень понятно, чем не удобно всплывающее окно, его всегда можно вызвать через шорткат, а зачем ему постоянно быть на экране — не ясно.
3. Довольно интересное предложение.
Но и 1, и 3 можно закинуть в наш трекер с описанием и примерами, а мы над ними подумаем на будущее.
2. На какую-то систему сборки мы всегда будем полагаться, будь то CMake или какая-то другая, которую мы поддержим. Файлы, которые ни в каком проекте, открыть конечно в IDE можно (File | Open), но никакие smart действия (умный комплишен, рефакторинг, анализ кода, др.) там будут не возможны, просто потому что у IDE не будет полной картины.
1. В целом не очень понятно, чем не удобно всплывающее окно, его всегда можно вызвать через шорткат, а зачем ему постоянно быть на экране — не ясно.
3. Довольно интересное предложение.
Но и 1, и 3 можно закинуть в наш трекер с описанием и примерами, а мы над ними подумаем на будущее.
0
1. При «разборе» чужого кода, когда оплачивается результат, а не время, порой хочется как можно меньше времени тратить на запоминание сущностей. «А что это за write_to_portALLvars()?» — тык по названию, context window показывает кусок кода, где оно определено. А необходимость каждый раз нажимать сочетание клавиш заставляет чувствовать себя забывчивой ленивой обезьяной, которая не может запомнить структуру чужого проекта с гитхаба, который то и дело допиливается в обеденный перерыв )
Возможно, есть способ «вытащить» этот функционал в плагин?
2. «Какая-то» система — это открытый путь в файловой системе + все пути, распознанные из #include; если разработчик инклудит код из мест, доступных через пути, то он ССЗБ, конечно же, но и прописать эти пути есть куда — у вас создается папка .idea. Не смотрел, что внутри, но полагаю, что и дополнительные пути туда «загнать» можно.
1,3 закину в трекер чуть позже.
Возможно, есть способ «вытащить» этот функционал в плагин?
2. «Какая-то» система — это открытый путь в файловой системе + все пути, распознанные из #include; если разработчик инклудит код из мест, доступных через пути, то он ССЗБ, конечно же, но и прописать эти пути есть куда — у вас создается папка .idea. Не смотрел, что внутри, но полагаю, что и дополнительные пути туда «загнать» можно.
1,3 закину в трекер чуть позже.
0
В quick start в системных требованиях написано: Windows 7.0 x64, 8.0 x64 Linux 64-bit. Т.е., на XP, или на 32-bit Windows и Linux его не поставить?
0
Первые впечатления очень хорошие, но столкнулся с некоторыми сложностями. «Refactor -> Rename» отказывается работать на машинке с OSX 10.10. Кнопка «Refactor» не активируется. В видео примере при создании новых файлов внутри проекта упускается добавление их в CMakeLists, добавление происходит автоматически?
0
Про рефакторинг на 10.10 — что-то странное, пришлите sample prj в саппорт.
Пока добвление вручную, планируется автоматическое — youtrack.jetbrains.com/issue/CPP-27
Пока добвление вручную, планируется автоматическое — youtrack.jetbrains.com/issue/CPP-27
0
Это голый проект с попыткой пошагово воспроизвести демонстрационное видео.
0
Да, вижу, какой-то даунгрейд закрался в билд. Починим в следующих билдах youtrack.jetbrains.com/issue/CPP-1011. Это никак не зависит от версии ОС
0
Отлично, спасибо.
0
Связав воедино все дубликаты этой проблемы, заодно и пофиксили — youtrack.jetbrains.com/issue/CPP-1282. В следующем EAP-е будет фикс. Извините за неудобства.
0
Sign up to leave a comment.
CLion — долгожданная IDE от JetBrains для С/С++ разработчиков — открывает публичный EAP