Russian Qt Forum
Ноябрь 02, 2024, 05:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Статическая сборка с WebKit, MS VS  (Прочитано 4564 раз)
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« : Октябрь 24, 2011, 15:44 »

По многочисленным просьбам:

Краткая инструкция как собрать Qt статичеcки, включая статический WebKit, с помощью MS VS (то бишь под венду).

Версия Qt - актуальная на данный момент (2011 год), т.е. 4.7.x.

1. Статический билд openSSL
 
Делаем по ее инструкции, она хорошая - файл INSTALL.W32
(в конце запустить nmake -f ms\nt.mak)
 
2. Билд Qt
 
2.1. Распаковываем исходники Qt в любую папку
 
2.2. Добавляем переменную окружение QTDIR, указывающую на эту папку. Добавляем %QTDIR%\bin в PATH
 
2.3. QTDIR\mkspecs\win32-msvc2010\qmake.conf
 
DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT QT_STATIC_BUILDD
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_DEBUG = -Zi -MDd
 
в посл. 2 строки можно добавить -MP2 чтобы загрузить 2 процессора.
если линковать MS CRT статически, то вместо -MD и -MDd нужно -MT и -MTd
Если MT/MTd, то тогда еще убрать создание манифестов из CONFIG - embed_manifest_dll embed_manifest_exe
 
2.4. QTDIR\src\3rdparty\webkit\WebKit.pri
 
В переменную CONFIG добавляем staticlib
 
2.5. Запускаем MSVS Command Prompt, идем в директорию QTDIR
 
2.6. configure -loadconfig <имяконфига>
(Файл с конфигом имеет имя вида configure_имяконфига.cache)
 
2.7. qmake projects.pro QT_BUILD_PARTS="libs" JAVASCRIPTCORE_JIT="yes"
 
2.8. nmake или, чтоб быстрее, nmake sub-src
 
2.9. Примечание: при таком билде QtWebKit.lib не вбирает в себя jscore.lib. jscore.lib находится в QTDIR\src\3rdparty\webkit\JavaScriptCore\release и debug. Ее надо будет указывать линкеру (или копировать в место, где линкер ее увидит). Напр., CMake скрипт в моих проектах ищет эту либу в папке QTDIR\lib (она туда скопирована).
 
2.10 Еще надо собрать плагин(ы) для image formats отдельно, если нужны
Записан
yuriyb
Гость
« Ответ #1 : Октябрь 24, 2011, 16:04 »

А нельзя заставить QtWebKit.lib слинковаться с jscore.lib ?

QT_STATIC_BUILD - для чего ? в сорцах нигде это определине не используется вроде
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #2 : Октябрь 24, 2011, 16:41 »

А нельзя заставить QtWebKit.lib слинковаться с jscore.lib ?

Можно, но лень

Цитировать
QT_STATIC_BUILD - для чего ? в сорцах нигде это определине не используется вроде

Не помню уже, полгода назад дело было, может и не надо
Записан
yuriyb
Гость
« Ответ #3 : Октябрь 24, 2011, 18:54 »

таки собрал qt статически. Но!
Код:
configure -debug-and-release -opensource -static -platform win32-msvc2008 -plugin-sql-sqlite -no-qt3support -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -mmx -3dnow -sse -sse2 -openssl-linked -phonon -phonon-backend -multimedia -audio-backend -webkit -script -declarative -arch windows -I C:\OpenSSL-Win32\include -L C:\OpenSSL-Win32\lib

теперь во время линковки моего проекта которы пользует и phonon и webkit - вот такая Ж
Код:
QtWebKit.lib(MediaPlayerPrivatePhonon.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) class QStringList __cdecl Phonon::BackendCapabilities::availableMimeTypes(void)" (__imp_?availableMimeTypes@BackendCapabilities@Phonon@@YA?AVQStringList@@XZ) referenced in function "private: static class WTF::HashSet<class WebCore::String,struct WebCore::StringHash,struct WTF::HashTraits<class WebCore::String> > & __cdecl WebCore::MediaPlayerPrivate::supportedTypesCache(void)" (?supportedTypesCache@MediaPlayerPrivate@WebCore@@CAAAV?$HashSet@VString@WebCore@@UStringHash@2@U?$HashTraits@VString@WebCore@@@WTF@@@WTF@@XZ)


есть идеи как победить ?
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #4 : Октябрь 24, 2011, 18:59 »

Фонон я не юзал, так что не подскажу.

Без статики фонон и веб-кит работали? Если нет, то что там с бэкэндами фонона у тебя?
Записан
yuriyb
Гость
« Ответ #5 : Октябрь 24, 2011, 19:01 »

Без статики проект полностью рабочий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 22.