1. 下载源码
a) 有两种方法下载,其一就是进入qt-project.org网址,找到下载5.3.1源码的链接,点击后就直接下载了。其二就是上一步下载后,在firefox的下载管理器里面,右键点击下载管理器中的下载文件,copyDownload Link可以查看下载链接网址。如图:我下载的链接网址是 http://mirrors.hust.edu.cn/qtproject/archive/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.gz。 然后可以进入terminal命令,输入wgethttp://mirrors.hust.edu.cn/qtproject/archive/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.gz进行下载。
b) gcc, binutils, make等编译工具下载。这些工具是不是ubuntu已经自动安装了 还是我之前已经安装好了。
2. 在/opt目录下新建文件夹Qt5.3.1-static,命令如下:cd /opt; sudo mkdir Qt5.3.1-static。返回下载源码所在目录并把文件拷贝到/opt/Qt5.3.1-static目录: cd~; sudo cp qt-everywhere-opensource-src-5.3.1.tar.gz /opt/Qt5.3.1-static。解压:sudotar –xvzf qt-everywhere-opensource-src-5.3.1.tar.gz。进入解压后目录:cdqt-everywhere-opensource-src-5.3.1。查看configure命令选项: sudo ./configure –help。
3. 开始编译。
a) 静态编译:选项为:sudo ./configure –static –release–c++11 –qt-zlib –qt-libpng –qt-libjpeg –nomakeexamples –qt-sql-sqlite –qt-sql-psql –qt-sql-mysql –qt-sql-oci –no-icu –prefix/opt/Qt5.3.1-static。
其中比较关键的几项:-static就是静态编译。-share就是动态编译。
-qt-sql-<driver>就是编译相关的数据库的驱动(实际上还要加上对应数据库的头文件和lib库文件,也就是-I和-l开关,但是我没有下载对应的数据库,所以编译的时候,报错就删除了。
-no-icu就是去处icu模块
-prefix <dir> 就是安装目录,缺省是安装到/usr/local/下面去。
结果上面命令执行中,提示mysql没有通过functionalitytest。去掉-qt-sql-mysql
再次运行时候,提示oracle支持也没有通过功能测试,去掉-qt-sql-oci。
再次运行提示postgresql也没有通过功能测试。去掉-qt-sql-psql。
要求加上-qt-xcb。加上!结果configure成功,继续运行make和makeinstall即可。但是提示静态链接会导致动态加载的plugins无法使用,提醒是否导入所需要的所有plugin。
b) 所以最后成功的configure参数为:sudo ./configure –static –release–c++11 –qt-zlib –qt-libpng –qt-libjpeg –nomakeexamples –qt-sql-sqlite –no-icu –prefix /opt/Qt5.3.1-static。
运行 sudo make (15:45开始编译)
c) 下载Qt Creator3.1.2。chmod +xqt-creator-opensource-linux-x86_64-3.1.2.run即可安装。安装完后配置qt creator,进入tools->options菜单,build&run窗口,kits下面,选择devicetype为desktop,device为localpc,compiler为gcc(x86_64bitin /usr/bin),debugger为systemgdb at /usr/bin/gdb,qt version选择Qt5.3.1目录下面的bin/qmake.conf即可。
d) 成功编译一个入门级应用程序。可以正常运行。但可执行文件大小约为20MB,呵呵。静态编译付出的成本很大,但文件大小似乎没有降下来多少啊,不知为何?