Всім доброго часу доби!
Думаю багато хто з вас знайомі з таким потужним крос-платформних інструментарієм, як Qt і нагальною проблемою збірки Qt з Visual Studio. Працював я раніше з версією 4.8 і бід не знав, поки начальство не змусило не дало вказівку переходити на нову, недавно вийшла, 5 версію. До слова сказати, сам перехід проблем не викликав, та ось знадобилося використовувати Qt в Visual Studio (обговорення необхідності цього заходу виходить за рамки цього топіка).
Останній раз, збирати Qt в Visual Studio мені доводилося 2 роки тому, ще з версією 4.7.3 і, чесно сказати, позитивних емоцій від цієї збірки у мене залишилося мало не залишилося. Як зараз пам'ятаю, необхідно було, хвилин 10-15 конфігурувати вихідні Qt, а далі в роботу вступав jom, а робота його тривала
3-4 години (на моєму Core i5-2430M). Тільки після цих діянь можна було писати на Qt в студії.
Перспектива повторення цих операцій мене не радувала. Прочитавши на Хабре пару статей про спроби збирання Qt в Visual Studio з'ясував, що тепер справи йдуть ще сумніше, для збірки необхідні: ActivePerl, Python, Ruby, ICU, плюс до всього, весь процес складання тепер триває в рази довше:
nmake збирав qtwebkit вже годин 8 до ряду. Зараз пройшло вже більше доби з моменту останнього запуску nmake
З сумною міною на обличчі, з усвідомленням всього навалюється вантажу, я поставив на скачування вихідні, перл і т.д. Без надії на успіх, вирішив спробувати підключити бібліотеки Qt до Visual Studio так, як це робиться з деякими бібліотеками для використання WinAPI і, я довго не міг повірити, але - вийшло! А тепер про все по порядку і детальніше (хоча докладно навіть нічого описувати, все досить просто і думаю, що я аж ніяк не перший, хто до цього додумався).
Передбачається, що Ви маєте вже встановлені:
Крок 1: Налаштування оточення
Припустимо, при установці Qt, ви вибрали шлях: «C: \ Qt», в такому випадку, в цій папці у вас будуть створені папки 5.0.2, Licenses і т.д.
Встановлюємо наступні змінні оточення:
Крок 2: Visual Studio Add-In
Далі просто завантажуємо Visual Studio Add-in for Qt5 (не працює з Express Edition) і встановлюємо в будь-яку папку, місцезнаходження студії буде визначено автоматично. Я встановив в C: \ Qt \ Qt5VSAddin.
Крок 3: Використання Qt в VS
Так, саме використання! Вже на третьому кроці, без ручних збірок і т.д. Якщо Ви все правильно зробили (а що можна було зробити неправильно?), В Visual Studio з'явиться вкладка Qt5, де версія Qt повинна визначитися автоматично, якщо цього не відбулося, було неправильно налаштоване оточення і необхідно вручну вказати шлях до qmake (а краще все- таки коректно налаштувати оточення, бо без нього швидше за все збиратися проект не буде).
Створюємо проект Qt5 (можна відкрити наявний * .pro-файл, через меню Qt5). Пишемо всіма улюблений «Hello, World!»:
Якщо спробувати зібрати даний проект, в момент лінковки виникнуть помилки у вигляді «посилань на недозволені зовнішні елементи». Щоб це виправити треба, між директивами #include і функцією main додати ще одну директиву:
Надалі, від додавання цієї препроцесорної директиви (потрібно буде додавати ще Qt5Core, Qt5Gui і т.д.) можна позбутися простими налаштуваннями властивостей проекту, тобто додати в додаткові каталоги включення файл:
У додаткові каталоги бібліотек:
Ну і відповідно, в залежності:
P.S. Сподіваюся, що знайдуться люди, для яких дана статися виявиться-таки корисною
P.S.S Можливо, є якийсь сенс саме збирати Qt з вихідних під Visual Studio, якщо так, то приношу найглибші вибачення. Мені поки що явна збірка не знадобилася, при такій інтеграції Qt в Visual Studio був успішно написаний вже один великий проект, який, до всього іншого, використовує ICE (з яким теж довго вовтузилися в плані збирання, в результаті нормально працювати з ним вийшло тільки в студії, власне, це і є та необхідність інтеграції Qt в студію, про яку говорилося на самому початку).