MinGW静态编译Qt 4.7

Posted on 2011-08-02 15:45  liuyanghejerry  阅读(2017)  评论(0编辑  收藏  举报

Qt的LGPL发行版始终使用的是动态编译,因此所有的库都是动态链接的。这样做相对较为灵活,但并非十全十美——你将无法生成静态链接的程序。

有人说,LGPL的版本不应该静态编译,但我觉得协议当中并没有这么说。对此,谁如果能说服我,欢迎留言。

和我前几篇与编译有关的日志类似,我只是陈述一下大的步骤,不过绝大多数人都应该可以凭借这个简述开始编译。

下载Qt 4.7.3

地址:http://qt.nokia.com/downloads-cn。我选用的版本是官方预先准备的携带Qt Creator的版本,这个版本相对工具齐全,携带了我们需要的MinGW(对,我们要用它来编译)。如果你需要看的是有关VS上的编译,那么您已经可以绕道了,网络上有关VS的内容还是很充足的。

安装Qt 4.7.3

安装基本上是一路next。不过需要注意,如果你现在已经有一套Qt装在计算机上,最好能把这个Qt安装到不同的位置。我安装的路径是H:\QtForStatic,后文请留意。当然,如果你已经有一套了,直接复制到其它地方,再在其基础上编译也是没问题的。

配置环境变量

确保环境变量当中至少拥有如下的内容:

H:\QtForStatic\mingw\bin;

H:\QtForStatic\mingw;

Windows的系统环境变量通常需要重新启动才能将修改应用,为了避免这一点,我们使用命令行命令来临时变更,该变更所编辑的是一份环境变量副本,仅对当前cmd窗口有效:

set PATH=H:\QtForStatic\mingw\bin;H:\QtForStatic\mingw;C:\Windows\system32;C:\Windows

修改qmake.conf

因为选用的是MinGW,编译所使用的配置文件则为:H:\QtForStatic\qt\mkspecs\win32-g++。

编辑qmake.conf,其中QMAKE_CFLAGS_RELEASE这一项是编译器所使用的编译选项,你可以按照你的意向配置。我所使用的是:

-Os -momit-leaf-frame-pointer

生成编译配置

在H:\QtForStatic\qt下,命令行运行configure即可进行编译配置。此时还需要我们给configure一些参数来进一步配置,我所使用的参数如下:

configure -release  -static -nomake examples -nomake demos -platform win32-g++

此时configure会检查MinGW是否正常,配置是否齐全,参数是否正确等,之后会开始预先编译一些内容。如果一切正常,在configure所回显的信息当中,应该提示你使用什么命令进行编译。

开始编译

键入mingw32-make。此时编译开始。

Copyright © 2024 liuyanghejerry
Powered by .NET 8.0 on Kubernetes