пятница, 3 июля 2009 г.

Сборка плагинов под Windows или Пере(на)стройка Qt под MSVC

В предыдущем посте я писал, что под виндовс, если собрать плагин под MinGW(GCC), он не будет виден в Qt Creator. После беглового поиска на www.qtsoftware.com, выяснилось, что проблема существовала и в предыдущих версиях. Проблема, как я и предполагал в том, что Qt Creator собран в MSVC, а библиотека Qt поставляется сконфигурированной под MinGW, и, при компиляции и линковке Qt Creator автоматически использует GCC. Не знаю, какой в этом смысл, но так оно устроено. Отмечу, что Qt Creator будет прекрасно вызывать компилятор и линкер из набора MSVC, если конечно Qt собрана в MSVC.

Решить проблему с разработкой плагинов можно двояко- или пересобрать Qt Creator под MinGW, или перенастроить Qt под MSVC. У каждого свои предпочтения, противники мелкомягких вполне могут выбрать первый способ. Мне же до лампочки, чем компилять (лишь бы прога работала), поэтому я решил пере(на)строить Qt. В качестве стороннего комментария, замечу, что сравнительного анализа MinGW и MSVC я не делал. Если меня убедят, что MinGW круче, и что Qt Creator будет работать быстрее/стабильней, тогда я под ним Qt Creator и пересоберу. А так- от добра добра не ищут.

Вот тут можно найти самую общую инфу, как работать с Qt под Visual Studio: Compiler Notes. Коротко, новостей для меня две- MSVC 2008 поддерживается, а компилировать предлагается из коммандной строки. Это потому, что Qt не интегрируется с Express Edition, но вот компилится нормально. А нам того и надо.

Не знаю, позволяет ли майкрософт скачать только MSVC компилятор без всей среды, я такого не нашел. Буду благодарен, если кто подкинет ссылочку. Бесплатная же Visual Studio Express Edition устанавливается отсюда.

Пара слов до того, как начнем перестраивать ту Qt, которая есть в SDK вместе с Qt Creator. Такое впечатление, что Qt Creator, хоть и получил поддержку CDB в версии 1.2.0, но пока не очень стабильно работает с этим отладчиком. Так что, поскольку я собираюсь не только плагины рисовать, но и просто прожки отлаживать, я решил поставить вторую библиотеку Qt 4.5.2, в дополнение к той, которая уже сконфигурирована под MinGW.

Поскольку еще один Qt Creator нам не нужен, придется скачать Qt Framework, который содержит только саму библиотеку и тулзы. Во время инсталляции придется также устанавить новую (или указать уже установленную) версию MinGW, иначе это вызовет ошибки инструмента configure позже. Я устанавливал Qt Framework в c:\Qt\4.5.2. Можно устанавливать куда угодно, главное чтобы путь не содержал пробелов.

Перенастраиваем Qt из MS Visual Command Prompt:

cd c:\Qt\4.5.2\
configure -no-sql-sqlite -no-qt3support -no-opengl -platform win32-msvc2008 -no-libtiff -no-dbus -no-phonon -no-phonon-backend -no-webkit

Затем пересобираем:

nmake

Замечу, что configure занял порядка 15 минут на моей машине, а вот nmake- почти 2 часа.

Добавляем пересобранную Qt в Qt Creator (Options -> Qt4), и делаем ее default:



Все! Собираем плагин HelloWorld, копируем в папку плагинов, перегружаем Qt Creator- кнопка появилась на тулбаре слева.

2 комментария:

  1. Вместо Visual Studio можно поставить лишь Windows SDK, в нём тоже есть компилятор.

    ОтветитьУдалить
  2. Спасибо! Поставлю, посмотрю...

    ОтветитьУдалить