четверг, 8 ноября 2012 г.

Visual C++ Express Edition + QT4. Часть 1

Собственно ради чего я и залез во втором часу ночи и с перерывом в 3 месяца :)

Задача:
Хочу писать на QT под Windows не в QTCreator+Mingw, а с использованием Visual C/C++ (в моем случаи Express Edition -- так сказать: "Я, конечно, не херувим. У меня нет крыльев, но я чту Уголовный кодекс. Это моя слабость." (с) Остап Бендер

Решение:
0) Попытка по учебнику

0.1)

D:\Qt\4.8.3\bin\qmake.exe -t vc
Unable to generate makefile for: D:/VisualC++Projects/securesocketclient4/src/securesocketclient.pro


0.2)

D:\QtSDK\Desktop\Qt\4.7.3\msvc2008\bin\qmake.exe -t vc
WARNING: Generator: MSVC.NET: Found more than one version of Visual Studio, but none in your path! Fallback to low
on (MSVC.NET 2010 (10.0), MSVC.NET 2010 Express Edition (10.0))
WARNING: Generator: MSVC.NET: Unknown version (160) of MSVC detected for .vcproj
WARNING: Generator: MSVC.NET: Unknown version (160) of MSVC detected for .vcproj
Unable to generate makefile for: D:/VisualC++Projects/securesocketclient4/src/securesocketclient.pro


Значит пойдем длинным путем...

1) Для начала качаем Visual C/C++ http://www.microsoft.com/visualstudio/rus/downloads.
Кликаем на раскрывающийся раздел Visual C++ 2010 Express и качаем (рекомендую ставить английскую версию http://go.microsoft.com/?linkid=9709949, а не русскую http://go.microsoft.com/?linkid=9709957, так как после установки русской студии меня чуть вырвало) веб установщик. Он в свою очередь выкачает еще кучу мегазов-варезов так что будьте внимательны с платным трафиком -- жаба задушит.

Почему не Visual C/C++ 2012 -- QT в настоящее время не поддерживает сборки для 2012 -- сейчас только 2008 и 2010.

2) Далее идем на http://qt-project.org/downloads и вы Qt libraries 4.8.3 for Windows (VS 2010, 235 MB), качаем и устанавливаем.

3) Создаем новый проект securesocketclient4 в Visual C/C++



Компилируем, запускаем, дебажим и внимательно смотрим на переменную argc
она равна 1


4) Расчищаем проект от лишнего мусора
Было
Стало
Проверяем переменную argc (почему я это делаю постоянно вы поймете чуть позже %( ) -- она все еще равна 1



5) Создаем директорию src в "D:\VisualC++Projects\securesocketclient4\, выбираем для тестов сборки пример D:\Qt\4.8.3\examples\network\securesocketclient\  и копируем его в директорию "D:\VisualC++Projects\securesocketclient4\src\"

sslerrors                         ui │  3750│

sslclient                         ui │  5588│
sslclient                         h  │  2892│
sslclient                         cpp│  7976│
securesocketclient                qrc│   102│
securesocketclient                pro│   767│
securesocketclient            desktop│   257│
main                              cpp│  2551│
encrypted                         png│   750│
certificateinfo                   ui │  2486│
certificateinfo                   h  │  2597│
certificateinfo                   cpp│  4669│

удаляем старые (созданные визардом) и засыпаем все новые (скопированные из директории с примерами) файлы в проект, компилим и наслаждаемся ошибками

------ Build started: Project: securesocketclient4, Configuration: Debug Win32 ------
  sslclient.cpp
d:\visualc++projects\securesocketclient4\src\certificateinfo.h(44): fatal error C1083: Cannot open include file: 'QtGui/QDialog': No such file or directory
  main.cpp
d:\visualc++projects\securesocketclient4\src\main.cpp(41): fatal error C1083: Cannot open include file: 'QApplication': No such file or directory
  certificateinfo.cpp
d:\visualc++projects\securesocketclient4\src\certificateinfo.h(44): fatal error C1083: Cannot open include file: 'QtGui/QDialog': No such file or directory
  Generating Code...
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

ну что делать? идем и правим пути: правая кнопка мышки над названием проекта\выпадающее меню\Properties

выбираем в комбо Configuration установить All Configuration (если не сделать сразу, то потом напрыкаетесь)

В меню Configuration Properties\VC++ Directories\ добавляем в переменные
Include Directories  D:\Qt\4.8.3\include;D:\Qt\4.8.3\include\QtGui
чтобы получилось что-то вроде того:
$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;D:\Qt\4.8.3\include;D:\Qt\4.8.3\include\QtGui
и
Library Directories 

уже третий час ночи -- пойду посплю :))








Комментариев нет:

Отправить комментарий