Сборка Qt4 без зависимостей от MS Visual Studio

Даже если собирать Qt с ключом -static, то все равно Qt собирается с зависимостью от msvc*.dll, как и ваши проекты. В этой статье мы избавимся от зависимостей от MS Visual Studio.

Для начала скачайте исходные коды Qt, если вы ещё этого не сделали (можно с ftp сайта — https://ftp//ftp.trolltech.com/qt/source/ ) и распакуйте их. Или скачайте уже собранную Qt под Visual Studio, если вы являетесь счастливым обладателем коммерческой версии.

Далее мы меняем файл mkspecswin32-BLA-BLAqmake.conf, где ‘BLA-BLA‘ это версия вашей Visual Studio.

msvc для Visual Studio 6

msvc.net для Visual Studio.NET 2002-2003

msvc2005 для Visual Studio.NET 2005

msvc2008 для Visual Studio.NET 2008

Находим там:

QMAKE_CFLAGS_RELEASE = -O2 -MD

QMAKE_CFLAGS_DEBUG = -Zi -MDd

и заменяем на:

QMAKE_CFLAGS_RELEASE = -O2 -MT

QMAKE_CFLAGS_DEBUG = -Zi -MTd

и там же ищем:

CONFIG  += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe

и заменяем на:

CONFIG  += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target

Далее переходим в каталог mkspecsfeatureswin32 и ищем там файлы embed_manifest_exe.prf и embed_manifest_dll.prf

В файлах находим:

QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest "$$replace(OBJECTS_DIR,/,\)\$${NOPATH_TARGET}.intermediate.manifest" -outputresource:$(DESTDIR_TARGET);1$$escape_expand(nt))

меняем на:

QMAKE_POST_LINK = $$quote(@if exist "$$replace(OBJECTS_DIR,/,\)\$${NOPATH_TARGET}.intermediate.manifest" mt.exe -nologo

-manifest "$$replace(OBJECTS_DIR,/,\)\$${NOPATH_TARGET}.intermediate.manifest" -outputresource:$(DESTDIR_TARGET);

1$$escape_expand(nt))

теперь можно собирать Qt…

Рейтинг
( Пока оценок нет )
Загрузка ...