Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
894
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Какие инструменты вы используете для разработки приложений C++ на Linux?
Я разрабатываю приложения C++ в среде Linux. Инструменты, которые я использую каждый день, включают Eclipse с плагином CDT, gdb и valgrind.
Какие инструменты используют другие люди? Есть ли что-нибудь для Linux, что соперничает с изяществом Microsoft Visual Studio?
Я использую кучу 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 и любите его так же, как и я.
g++ конечно, но и Code::Blocks , который является абсолютно фантастическим кросс-платформенным IDE (Win32, *nix, Mac).
Я использую Ночные (в последнее время больше похожие на еженедельные) сборки из SVN. В нем есть почти все колокола и свистки, которые можно было бы ожидать от современного IDE. Это действительно действительно фантастический проект с открытым исходным кодом.
Кроме того, на Linux вы получаете удовольствие от использования Valgrind , который, вероятно, является лучшим трекером памяти (он делает и другие вещи), который можно купить за деньги. И это бесплатно :) отслеживать утечки памяти и многое другое с легкостью.
И есть еще столько всего! Linux-это такая отличная платформа для разработки :)
(edit) только что понял, что вы упомянули Valgrind в своем вопросе, глупо мне читать его слишком быстро.
Прямо сейчас я использую Qt Creator . Он кросс-платформенный и довольно хорошо интегрируется с Qt, хотя (конечно) у вас есть возможность создать отдельное приложение.
Я считаю, что KDevelop-это то, что было бы ближе всего от Microsoft Visual Studio. Вы получаете практически все (кроме, К сожалению, VS debugger, который действительно является убийцей). Он уже созрел, и его развитие идет довольно быстро и многообещающе.
На самом деле он реализует несколько вещей, которые вы даже не увидите в VS. Например, откройте заголовочный файл и cpp-файл в режиме вертикальной плитки и синхронизируйте курсор в обоих случаях, т. е.: когда вы выбираете прототип функции, у вас всегда есть его реализация справа.
KDevelop-это проект KDE, но он работает на Gnome. Анюта-это аналог проекта GNOME, но я найти его непригодным для реальной работы. Для rest стека gcc сделайте valgrind ddd (a gdb IDE)и python для сценариев моего кода.
Если вы в порядке, попробуйте другой подход, чем VS IDE. Вы можете рассмотреть пытается vim. Однако, чтобы привыкнуть к этому, требуется много времени.
Eclipse CDT -это действительно очень мило. Мне все еще приходится время от времени прибегать к Emacs, но я очень люблю индексирование, деревья вызовов, деревья типов, поддержку рефакторинга (думал, что это не так, как рефакторинг Java) и т. д. Подсветка синтаксиса достаточно мощна, если вы настраиваете ее (может иметь отдельные цвета для локальных переменных, аргументов функций, методов и т. д.). Завершение кода тоже очень удобно. Я в основном использовал Eclipse 3.3, но 3.4-это тоже здорово.
Кроме того, в основном я использую это для несколько большого проекта (~1e6 sloc) - это может быть излишним для игрушечных проектов.
Вам нужен стандартный набор инструментов + an IDE.
Там нет ничего особенного, чтобы сказать о стандартной цепочке инструментов. Просто установите, например, на Ubuntu/Debian через
aptitude install build-essential
Самая интересная часть-это про IDE.
Мое личное впечатление таково, что сегодня - в 21 веке-vi/emacs/make/autotools/configure недостаточно для разработки программных проектов выше определенного размера (... и да, пожалуйста, пожалуйста, обвините меня в ереси наследия ...).
Какой IDE выбрать-это просто вопрос вкуса. Вы найдете много нитей на SOF. Вот Постоянная ссылка, обсуждающая, какой C++ IDE может быть "best": C++ IDE для Linux .
Когда я разрабатывал код 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.
Инкубационный проект 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 Нажмите здесь
Первый вариант-это всегда emacs с большим количеством плагинов: ecb дает некоторые буферы для навигации по папкам, gdb, svn или git интеграции... Это мой первый выбор с использованием Python тоже.
Как второй вариант, Netbeans с плагином C++, очень простой и довольно мощный, но слишком тяжелый, я думаю.
Я еще один за KDevelop. Он имеет очень разнообразный набор инструментов. Я не очень хорошо знаком с VS и не знаю, имеет ли он встроенный консольный доступ через свой интерфейс, но KDevelop может позволить вам запустить konsole внутри IDE, что я всегда нахожу очень полезным. Вы всегда можете дать Netbeans ход теперь, когда он имеет полную поддержку C/C++.
Кроме того, я хорошо использую gdb и его gui - версию ddd для проблем с кодом или других ошибок. Для выброшенных программ, как и другие, которые уже опубликованы - я использую g++ в terminal и делаю для некоторых более крупных проектов.