windows系统mingw编译qt自动化批处理脚本V2

hemiya 2012-05-05 03:33:53
windows系统mingw编译qt自动化批处理脚本V2

前一个版本有点小错误,不太完美,这个v2脚本经过自己最近的使用比较完美了,不用带src文件夹,include包含private文件夹的h文件,以后编译qt中其它的模块不会有提示private/private_xxx.h错误,编译qtcreator也会用到这些文件。

前期准备工作下载mingw、perl、jom(非必须),修改 set path=R:\mingw64\bin;R:\Perl\bin 这一行改为你自己mingw和perl的路径,如果不使用jom编译,修改jom -f Makefile 为 mingw32-make -f Makefile。把下面的脚本存为bat文件,放到qt源代码目录下即可,例如:R:\qt-everywhere-opensource-src-4.8.1,改完路径后,运行即可。

下载perl
下载mingw
下载mingw64和mingw32
下载jom



@echo off
set path=R:\mingw64\bin;R:\Perl\bin;
set QTDIR=%cd%

echo -- 配置 debug-and-release --
time /t
configure -platform win32-g++ -opensource -debug-and-release -no-exceptions -no-style-plastique -no-

style-cleanlooks -no-style-motif -no-style-cde -no-qt3support -no-script -no-scripttools -no-webkit -

nomake examples -nomake demos

echo -- 编译 debug-and-release --
jom -f Makefile

echo -- 编译结束,开始优化 debug dll 文件 --
time /t
pause

cd %QTDIR%\bin
for /f "delims=" %%i in ('dir /b /a-d /s "*d4.dll"') do strip %%i

cd %QTDIR%\lib
for /f "delims=" %%i in ('dir /b /a-d /s "*d4.dll"') do strip %%i

cd %QTDIR%\imports
for /f "delims=" %%i in ('dir /b /a-d /s "*d4.dll"') do strip %%i

cd %QTDIR%\plugins
for /f "delims=" %%i in ('dir /b /a-d /s "*d4.dll"') do strip %%i

echo -- 生成 include 文件 --
copy /y "%QTDIR%\src\corelib\global\qconfig.h" "%QTDIR%\qconfig.h"
rd /s /q "%QTDIR%\include"
perl.exe %QTDIR%\bin\syncqt -copy
copy /y "%QTDIR%\qconfig.h" "%QTDIR%\QtCore\qconfig.h"
copy /y "%QTDIR%\mkspecs\win32-g++\*.*" "%QTDIR%\mkspecs\default\*.*"

echo -- 开始清理无用的文件 --
time /t
pause

echo -- 删除目录,文件 --
del /q "%QTDIR%\bin\*d4.dll"
del /q "%QTDIR%\bin\createpackage"
del /q "%QTDIR%\bin\createpackage.bat"
del /q "%QTDIR%\bin\createpackage.pl"
del /q "%QTDIR%\bin\elf2e32_qtwrapper"
del /q "%QTDIR%\bin\elf2e32_qtwrapper.bat"
del /q "%QTDIR%\bin\elf2e32_qtwrapper.pl"
del /q "%QTDIR%\bin\patch_capabilities"
del /q "%QTDIR%\bin\patch_capabilities.bat"
del /q "%QTDIR%\bin\patch_capabilities.pl"
del /q "%QTDIR%\bin\syncqt"
del /q "%QTDIR%\bin\syncqt.bat"
del /q "%QTDIR%\bin\findtr"
del /q "%QTDIR%\bin\setcepaths.bat"

rd /s /q "%QTDIR%\translations\debug"
rd /s /q "%QTDIR%\translations\release"
del /q "%QTDIR%\translations\*.ts"
del /q "%QTDIR%\translations\check-ts.pl"
del /q "%QTDIR%\translations\check-ts.xq"
del /q "%QTDIR%\translations\polish.qph"
del /q "%QTDIR%\translations\README"

rd /s /q "%QTDIR%\lib\fonts"
rd /s /q "%QTDIR%\lib\pkgconfig"
rd /s /q "%QTDIR%\config.profiles"
rd /s /q "%QTDIR%\config.tests"
rd /s /q "%QTDIR%\demos"
rd /s /q "%QTDIR%\doc"
rd /s /q "%QTDIR%\examples"
rd /s /q "%QTDIR%\qmake"
rd /s /q "%QTDIR%\templates"
rd /s /q "%QTDIR%\tools"
rd /s /q "%QTDIR%\util"
rd /s /q "%QTDIR%\tmp"
del /s /q "%QTDIR%\*.pro"
del /s /q "%QTDIR%\Makefile"
del /s /q "%QTDIR%\Makefile.*"
del /s /q "%QTDIR%\*LICENSE*"

echo -- 结束 --
echo 如果不想重新生成include文件,请手动删除 "%QTDIR%\qconfig.h"
time /t
pause
...全文
229 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
就这样好了 2012-07-25
  • 打赏
  • 举报
回复
运用在CI中?
hemiya 2012-07-25
  • 打赏
  • 举报
回复
2215025060

16,210

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧