QT静态编译

Window下静态编译:

Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用以下方法编译静态库:

方法(一):

1.编辑C:\Qt\2009.05\qt\mkspecs\win32-g++\qmake.conf 文件把 QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import-Wl,-enable-runtime-pseudo-reloc

改为:QMAKE_LFLAGS = -static-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc(QMAKE_LFLAGS标签中增加-static

note:(C:\Qt\2009.05为QT的安装目录,因个人而异)

2.在开始菜单里找到QtCommand Prompt并运行,输入命令:  configure -static -debug-and-release -no-exceptions

note:

上述命令格式为:

Configure空格–static空格-debug-and-release空格-no-exceptions

当输入错误时(中间少了空格或写错字),你可以输错命令就可以查看到帮助文档,如下截图:

3.命令正确时会提示选择版本,如下截图,请输入o(open scoure edition)

4.输入0之后会出现License选择,如下截图,请输入y

5.选择accept license后QT开始配置相关设置,设置好了会有命令行出现,并有如下截图。

6.上一条命令运行成功后再输入命令:  mingw32-make sub-src编译需要花很多时间,等1 ~3 小时可能就运行完了 ,编译完成标识(有命令行出现,一般不会出错),完成后就ok了。

MAC下静态编译:

1.下载qt-mac-opensource-src-4.6.2.tar.gz

2.解压缩到/目录,tar –xvfqt-mac-opensource-src-4.6.2.tar.gz

cd到目录/qt-mac-opensource-src-4.6.2/

3.打开目录下的projects.pro,删除demos,doc,examples,删除方法:在解压的目录下打开projects.pro文件,搜索含examples,demos,docs的else语句并删除。再进入tools目录打开tools.pro删除assistant(删除这些是为了不编译这些工程),也可以不删除,时间会更久一些。

4.执行./configure-release -static -fast(大约5~6分钟),执行make(约两小时))。如出现错误,运行make clean,重新第4步;如无错,运行make install(10分钟)

5.选择编译安装好的版本4.6.2编译工程,如出现(qcc编译问题),进入mkspecs/common/mac-g++.conf 文件(删除含ppc项)

A.       配置

Window上配置环境变量:

PATH=C:\Qt\2010.02.1\bin

PATH=C:\Qt\2010.02.1\qt\bin

然后再像以前这样重新编译和生成自己写的程序,这样的生成的可执行程序就是使用静态链接的,可以直接在未安装Qt的电脑上运行。这样的副作用就是,可执行 文件变得非常大,有6.81MB!动态链接的版本只有82.5KB。当然,如果加上那些依赖的动态链接库,静态链接的程序在体积上还是有优势


你可能感兴趣的:(QT静态编译)