Сведения о вопросе

HOLY

11:52, 23rd August, 2020

Теги

c++   linux   eclipse   gdb   valgrind    

Какие инструменты вы используете для разработки приложений C++ на Linux?

Просмотров: 545   Ответов: 24

Я разрабатываю приложения C++ в среде Linux. Инструменты, которые я использую каждый день, включают Eclipse с плагином CDT, gdb и valgrind.
Какие инструменты используют другие люди? Есть ли что-нибудь для Linux, что соперничает с изяществом Microsoft Visual Studio?



  Сведения об ответе

FAriza

00:30, 4th August, 2020

Я использую кучу terminal windows. У меня есть vim запущенный на интересных исходных файлах, make и G++ вывод на другом для ошибок компилятора или gdb сеанс для ошибок времени выполнения. Если мне нужна помощь в поиске определений, я запускаю cscope и использую поддержку cscope vim, чтобы прыгать вокруг.

Eclipse CDT - это мой второй выбор. Он хороший, но огромный, неуклюжий и медленный по сравнению с vim.

Использование terminal windows и vim очень гибко, потому что мне не нужно носить с собой 400 MB из Java, я могу использовать SSH сеансов из любого места.

Я использую valgrind, когда мне нужно найти проблему с памятью.

Я использую strace , чтобы посмотреть, что делает мое программное обеспечение на уровне системного вызова. Это позволяет мне очистить действительно глупый код, который вызывает time(0) четыре раза подряд или делает слишком много звонков в poll() или неблокирующий read() или такие вещи, как вызов read() на сокете для чтения 1 байта за раз. (Это очень неэффективно и лениво!)

Я использую objdump -d для проверки машинного кода, особенно для внутренних циклов, чувствительных к производительности. Именно так я нахожу такие вещи, как медлительность оператора индекса массива в строках по сравнению с использованием итераторов.

Я использую oprofile, чтобы попытаться найти горячие точки в оптимизированном коде, я нахожу, что он часто работает немного лучше, чем gprof, и он может делать такие вещи, как поиск пропусков кэша данных и инструкций. Это может показать вам, где можно оставить некоторые полезные подсказки для предварительной выборки, используя GCC __builtin_prefetch . Я попытался использовать его, чтобы найти горячие неверно предсказанные ветви, но не смог заставить это работать на меня.

Update: я обнаружил, что perf работает намного лучше, чем oprofile. По крайней мере, на Linux. Научитесь использовать perf и любите его так же, как и я.


  Сведения об ответе

lesha

01:34, 17th August, 2020

g++ конечно, но и Code::Blocks , который является абсолютно фантастическим кросс-платформенным IDE (Win32, *nix, Mac).

Я использую Ночные (в последнее время больше похожие на еженедельные) сборки из SVN. В нем есть почти все колокола и свистки, которые можно было бы ожидать от современного IDE. Это действительно действительно фантастический проект с открытым исходным кодом.

Кроме того, на Linux вы получаете удовольствие от использования Valgrind , который, вероятно, является лучшим трекером памяти (он делает и другие вещи), который можно купить за деньги. И это бесплатно :) отслеживать утечки памяти и многое другое с легкостью.

И есть еще столько всего! Linux-это такая отличная платформа для разработки :)

(edit) только что понял, что вы упомянули Valgrind в своем вопросе, глупо мне читать его слишком быстро.


  Сведения об ответе

PIRLO

15:13, 20th August, 2020

При разработке приложений C++ для linux я предпочитаю использовать кучу инструментов cmdline. Vim расширен с большим количеством плагинов. Gdb с ddd, valgrind, libefence и SCons (automake-это боль внутри ... ты знаешь где)


  Сведения об ответе

SSESION

06:01, 28th August, 2020

  • г++

  • emacs

  • bash командная строка

  • gdb-режим в emacs (тип M-X gdb)

  • делать


  Сведения об ответе

piter

09:07, 19th August, 2020

emacs, cmake, gdb, git, valgrind. Он может быть не таким гладким, как Visual Studio, но он хорошо работает, и его легко добавить с помощью скриптов bash или emacs lisp.


  Сведения об ответе

ASSembler

01:37, 10th August, 2020

Прямо сейчас я использую Qt Creator . Он кросс-платформенный и довольно хорошо интегрируется с Qt, хотя (конечно) у вас есть возможность создать отдельное приложение.


  Сведения об ответе

lool

02:56, 18th August, 2020

g++ и make


  Сведения об ответе

LIZA

12:50, 13th August, 2020

Я считаю, что KDevelop-это то, что было бы ближе всего от Microsoft Visual Studio. Вы получаете практически все (кроме, К сожалению, VS debugger, который действительно является убийцей). Он уже созрел, и его развитие идет довольно быстро и многообещающе.

На самом деле он реализует несколько вещей, которые вы даже не увидите в VS. Например, откройте заголовочный файл и cpp-файл в режиме вертикальной плитки и синхронизируйте курсор в обоих случаях, т. е.: когда вы выбираете прототип функции, у вас всегда есть его реализация справа.

KDevelop-это проект KDE, но он работает на Gnome. Анюта-это аналог проекта GNOME, но я найти его непригодным для реальной работы. Для rest стека gcc сделайте valgrind ddd (a gdb IDE)и python для сценариев моего кода.

Если вы в порядке, попробуйте другой подход, чем VS IDE. Вы можете рассмотреть пытается vim. Однако, чтобы привыкнуть к этому, требуется много времени.


  Сведения об ответе

pumpa

13:16, 13th August, 2020

Eclipse CDT -это действительно очень мило. Мне все еще приходится время от времени прибегать к Emacs, но я очень люблю индексирование, деревья вызовов, деревья типов, поддержку рефакторинга (думал, что это не так, как рефакторинг Java) и т. д. Подсветка синтаксиса достаточно мощна, если вы настраиваете ее (может иметь отдельные цвета для локальных переменных, аргументов функций, методов и т. д.). Завершение кода тоже очень удобно. Я в основном использовал Eclipse 3.3, но 3.4-это тоже здорово.

Кроме того, в основном я использую это для несколько большого проекта (~1e6 sloc) - это может быть излишним для игрушечных проектов.


  Сведения об ответе

FAriza

17:33, 20th August, 2020

Вам нужен стандартный набор инструментов + an IDE.

Там нет ничего особенного, чтобы сказать о стандартной цепочке инструментов. Просто установите, например, на Ubuntu/Debian через

aptitude install build-essential

Самая интересная часть-это про IDE.

Мое личное впечатление таково, что сегодня - в 21 веке-vi/emacs/make/autotools/configure недостаточно для разработки программных проектов выше определенного размера (... и да, пожалуйста, пожалуйста, обвините меня в ереси наследия ...).

Какой IDE выбрать-это просто вопрос вкуса. Вы найдете много нитей на SOF. Вот Постоянная ссылка, обсуждающая, какой C++ IDE может быть "best": C++ IDE для Linux .


  Сведения об ответе

LAST

14:20, 10th August, 2020

Когда я разрабатывал код C++ на linux, я использовал emacs как редактор и как интерфейс gdb. Позже моя компания приобрела SlickEdit для всех программистов, что является хорошим IDE, возможно, не наравне с Visual Studio. Мы широко использовали gdb, иногда используя valgrind и gprof. Я настоятельно рекомендую использовать язык сценариев для дополнения C++ в задачах day-to-day. Я перешел с PERL на python на текущий ruby. Все они выполняют свою работу и имеют сильные стороны там, где C++ имеет слабые стороны. И, конечно же, у вас есть все команды shell в вашем распоряжении. Я ежедневно использую sort(), uniq(),awk и т. д. И еще одна рекомендация- ack, преемник grep.


  Сведения об ответе

dumai

18:09, 19th August, 2020

  • GCC
  • GHC
  • Vim
  • Cmake
  • cscope
  • GDB
  • Valgrind
  • трассированием
  • git

Есть ли на самом деле что-нибудь еще, что вам может понадобиться?


  Сведения об ответе

COOL

22:21, 9th August, 2020

Я использую плагин NetBeans C++, который превосходен и интегрируется с CVS и SVN. Сторона управления проектами также очень хороша. Через несколько минут я уже был на ногах и бегал с ним. Это впечатляющий IDE, но будучи Java, может быть немного вялым.


  Сведения об ответе

appple

18:59, 15th August, 2020

  • CMake
  • vim
  • г++
  • kdevelop (составлено из SVN ежедневно!)
  • Mercurial когда я могу, SVN когда я должен, git когда действительно нет другого выбора (вклад в проект, который использует его)
  • valgrind


  Сведения об ответе

ASER

00:14, 11th August, 2020

  • Bash
  • Vim
  • Сделай
  • Г++
  • GDB
  • Valgrind
  • Дргой
  • svn

Никогда не будет видно GUI, кроме хорошего terminal с поддержкой tab; держите код, отладчик, вывод и т. д. Все в отдельном windows и tab назад и вперед очень быстро.


  Сведения об ответе

PAGE

21:32, 10th August, 2020

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


  Сведения об ответе

SKY

18:32, 5th August, 2020

Инкубационный проект Eclipse Linux Tools объединяет инструменты разработки C/C++. Это плагин GUI для интеграции таких инструментов, как Valgrind, GProf, GCov, SystemTap и т.д. В Eclipse C++ CDT IDE.

Поиск Eclipse Helios IDE для C/C++ Linux разработчиков (включая инкубационные компоненты), (120 MB)

Нашел это после попытки построить Linux Tools с помощью файла .psf, доступного. К счастью, этот пакет скрывается прямо в нижней части страницы загрузки пакетов Helios.

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

смотреть также: Для получения обновленной информации об установке и использовании инструментов Eclipse Linux Нажмите здесь


  Сведения об ответе

lats

17:28, 20th August, 2020

Первый вариант-это всегда emacs с большим количеством плагинов: ecb дает некоторые буферы для навигации по папкам, gdb, svn или git интеграции... Это мой первый выбор с использованием Python тоже.

Как второй вариант, Netbeans с плагином C++, очень простой и довольно мощный, но слишком тяжелый, я думаю.


  Сведения об ответе

Chhiki

08:56, 10th August, 2020

Я использую все, что есть в системе. Я предпочитаю Eclipse CDT как редактор и g++ как компилятор. Однако, если eclipse не является опцией, я использую vi, что тоже хорошо.


  Сведения об ответе

DINO

05:47, 17th August, 2020

FlexeLint для статического анализа кода, в дополнение к упомянутому выше:
Eclipse с CDT, gcc, make, gdb, valgrind, bash shell.
Управление версиями исходного кода: Clearcase или git, в зависимости от проекта.


  Сведения об ответе

pumpa

01:38, 21st August, 2020

Anjuta -это хорошая идея, которая делает Linux C++ dev довольно приятным.


  Сведения об ответе

прога

02:21, 4th August, 2020

Я еще один за KDevelop. Он имеет очень разнообразный набор инструментов. Я не очень хорошо знаком с VS и не знаю, имеет ли он встроенный консольный доступ через свой интерфейс, но KDevelop может позволить вам запустить konsole внутри IDE, что я всегда нахожу очень полезным. Вы всегда можете дать Netbeans ход теперь, когда он имеет полную поддержку C/C++.

Кроме того, я хорошо использую gdb и его gui - версию ddd для проблем с кодом или других ошибок. Для выброшенных программ, как и другие, которые уже опубликованы - я использую g++ в terminal и делаю для некоторых более крупных проектов.


  Сведения об ответе

lats

04:35, 7th August, 2020

Eclipse CDT для редактирования, SVN для управления версиями, SCons для управления сборками, CruiseControl для автоматизированных сборок и собственной платформы модульного тестирования.


  Сведения об ответе

qwerty101

05:05, 19th August, 2020

Я использую Eclipse+CDT на Windows и Cygwin + g++ для кросс-компиляции для Linux.

(Кросс-компиляторы строятся с использованием crosstool, хорошего набора сценариев для создания кросс-компиляторов)


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться