суббота, 22 мая 2010 г.

Visual Studio 2008, Qt и Visual Assist X. Тонкости настройки для комфортной работы.

Основные задачи программиста - написание кода и его отладка, причем, отладка как правило занимает гораздо большее время. Значительно упростить и ускорить написание кода помогает Visual Assist X, да вот подружить его с Qt удается далеко не сразу.

Итак, для начала, надо скачать и установить:
Microsoft Visual Studio 2008, желательно поставить Service Pack 1 и все Hotfix-ы (многие ставит Windows Update).
Nokia Qt 4, Qt Visual Studio Add-in. Qt 4 я установил в C:\Qt\4.
Whole Tomato Visual Assist X.
Где что можно скачать, написано в этом посте:

Перейдем к настройкам.
1. Установка переменной среды "QTDIR". Идем Панель управления -> Система и безопасность -> Система -> Дополнительные параметры системы. Откроется такое окошко:

1.1. На закладке "Дополнительно" жмем "Переменные среды":

1.2. В поле "Переменные среды пользователя..." жмем "Создать"



1.3. В появившемся окне задаём:
"Имя переменной" = "QTDIR" (без кавычек)
"Значение переменной" = путь к каталогу, куда была установлена библиотека Qt, у меня это C:\Qt\4

2. Настройка Microsoft Visual Studio. Запускаем Microsoft Visual Studio 2008.

2.1. Идем в настройки: Tools -> Options -> Text Editor -> File Extension. Ставим галку напротив "Map Extensionless files to:" и выбираем "Microsoft Visual C++". Тем самым сообщая Visual Studio о том, что если файл не имеет расширения, что это файл C++.


2.2. В том же окне "Options" на страничке "Projects and Solutions" -> "VC++ Directories" выбираем в поле "Show directories for:" -> "Include files". Укажем Visual C++, где искать заголовочные файлы Qt:


2.3. Указываем пути к каталогам "include" в Qt, не забывая корневую папку (у меня это C:\Qt\4\include)


2.4. В том же окне "Options" на страничке "Projects and Solutions" -> "VC++ Directories" выбираем в поле "Show directories for:" -> "Source files". Добавляем в список файлов пути к папкам с исходными текстами Nokia Qt.

3. Настройка Visual Assist X.
3.1. В главном меню Visual Studio выбираем "VAssistX" -> "Visual Assist X Options...". В списке слева выбираем "Performance". В появившемся справа поле настроек выбираем "Watch for externally modified files and reparse when necessary". Эта опция пригодится, когда утилиты Qt типа MOC, RCC, UIC генерируют исходный код, Visual Assist сразу будет перепроверять измененные файлы. Жмем кнопку "Rebuild" напротив "Symbol databases".



3.2. В том же диалоге настроек Visual Assist X выбираем "Projects" -> "File Handling", ставим галочку напротив "Parse files without extensions as headers"




3.3. Жмем "ОК", а не закрываем крестиком. И на предложение о перезапуске IDE, тоже отвечаем утвердительно и перезапускаем Visual Studio.



4. Работа с исходным кодом.
4.1. После перезапуска Visual Studio, открываем любой проект с Qt или создаём новый мастером (File -> New project... -> Qt4 Projects -> Qt console application).

4.2. После открытия любого файла проекта, в строке статуса внизу экрана будет отображаться прогресс чтения и разбора заголовочных файлов Visual Studio Runtime, MFC и Qt. Просто надо подождать, пока процесс закончится.



4.3. Частенько, после этого, Visual Assist X всё равно выдаёт подсказки. Для решения этого, нам пригодится замечательное сочетание клавиш "ALT+G". Итак, ставим курсор в строчку: #include прямо в слово QCoreApplication и жмем "ALT+G"



4.4. Откроется файл "QCoreApplication". В нем поставить курсор в строчку: #include "qcoreapplication.h" и нажать "ALT+G"

4.5. Аналогично здесь:

4.6. Мы достигли цели, когда дошли до настоящего заголовочного файла (у него в начале указана лицензионная информация)

5. Вот и всё. Напоследок, пара примеров, как это работает:

Творите в своё удовольствие!

воскресенье, 16 мая 2010 г.

Актуальные инструменты

Кратко расскажу о тех инструментах, которые пригодятся и будут полезными при разработке программ на C/C++ для Windows. Первое, без чего я бы не смог программировать, это IDE Integrated Development Environment).

Microsoft Visual Studio 2008/2010 - для меня пока безальтернативный вариант. Спорить можно много, но не заметить старания Microsoft, чтобы этот продукт был инструментом множества профессионалов невозможно.

Плагин Visual Assist X - программист либо пишет, либо отлаживает. С Visual Assist X первое значительно упрощается, а Visual Studio резко отрывается от "Блокнота" и начинает "быть в теме" того, что вы сейчас пишете.

Intel Parallel Studio - комплект для разработки эффективного кода, его отладки и профилировки. Ранее для этих целей использовались Intel C++ Compiler (ICC), Intel Integrated Performance Primitives (IPP), Intel Threading Building Blocks (TBB), Intel VTune. Из этого всего, в добавление к Parallel Studio есть смысл поставить только VTune, да и то, если есть время на его освоение.

Nokia Qt - одна из самых удачных, быстрых, удобных, надежных, отлаженных, кроссплатформенных (даже под мобильные устройства) библиотек с открытым исходным кодом и удобным лицензированием, которые я встречал. Как C++ Builder VCL, только лучше и постоянно развивается. Сайт: http://qt.nokia.com/. Не забудьте про Qt Visual Studio Add-in - интеграцию библиотеки Qt в Visual Studio.

TinyXML - маленькая но выполняющая свою функцию библиотека для работы с XML используя только стандартные библиотеки C/C++.

Итак, что к чему. Visual Studio - среда куда интегрируются все компоненты, появляются соответствующие пункты в меню и окнах, достаточно удобная, в 2010 версии стала еще удобнее. Visual Assist X - это один из инструментов, в стиле "покрасил и забыл", один раз правильно настроить и наслаждаться. Будет отдельный пост, рассказывающей о тонкостях настройки под Qt, IPP, TBB, в этот же пост можно будет будет перетянуть и на другие библиотеки.
Intel Parallel Studio состоит из набора библиотек для разработки эффективного кода: IPP, TBB. С помощью IPP можно делать множество различных операций над данными, например, обработка сигналов, обработка изображений, матричная арифметика и т.д., а TBB пригодится для распараллеливания эффективного кода на все свободные ядра процессора. Также, в состав Parallel Studio входит Intel Parallel Inspector - многофункциональный отладчик, основная задача которого - контроль доступа к памяти, например, контроль выхода за границы массивов, контроль утечек памяти, контроль доступа к одним и тем же данным из разных потоков управления (threads - нитей).
Intel Parallel Amplifier подскажет, какой код выполняется дольше всего, насколько хорошо использовались все ядра процессора, какие объекты (файлы, mutex-ы, критические секции) не давали работать потоку кода дольше всего.

Всё богатство Nokia Qt мне не объять в данном посте, чего там только нет... и удобные компоненты для графического интерфейса, и поддержка 2D (родной) и 3D графики (OpenGL), и поддержка многопоточности (multi-threading), и удобный интерфейс сигналов между объектами, и возможность работы с мультимедиа данными (проигрывание видео и аудио), и браузер основанный на WebKit (всё с исходным кодом), и работа с сетью, и работа с базами данных, и работа с XML, да еще и скриптовый язык (т.е. программа может писать и выполнять сама себя во время работы).