笔记-linux下Qt5.3.2 静态编译

这里主要讲linux下的编译,windows下面比较简单

参考:http://qt-project.org/wiki/Building-Qt-5-from-Git

依赖

sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev

编译选项

configure -confirm-license -opensource -static -release -no-qml-debug -qt-freetype -qt-xcb -nomake tests -nomake examples -skip qtwebkit -prefix /usr/local/Qt-5.3.2-static

1.这里的-qt-freetype必须加上,另外要检查configure后的fontconfig是不是yes,如果不是,中文空白

如果fontconfig是no,执行 sudo apt-get install libfontconfig*,安装 libfontconfig1-dev等开发包,然后再configure

2.这里的-qt-xcb看起来应该是编译qt内部的xcb库,有了这个,可以少安装很多libxcb的开发包

qtcreator编译设置

1.先通过Qt Versions 选择Qt-5.3.2-static目录下面的qmake.exe,然后qtcreator自动识别

2.接着去构建套件中复制一份配置,qt版本选择qt-5.3.2-static

3.然后就是打开.pro文件,添加上CONFIG += static

命令行编译设置

cd 工程目录,qmake生成makefile,修改makefile的cxxflag选项,加上  -static,然后直接make,感觉这样比qtcreator生成的要小,

还且可以在当前目录生成可执行程序

 

可能遇到的问题

1.no module found QT: Script-private, 这个原因经过测试,发现只要单独进入QtScript工程目录单独编译一次,然后再退出,全部make一次就ok了

2.中文空白,如上,是编译的时候没有选上-qt-freetype或者fontconfig开发包没安装

3.unicode/uchar.h  这个是因为编译qwebkit导致的,原因不明,skip后就可以了

ok,一切完毕!

时间: 2024-08-09 02:30:47

笔记-linux下Qt5.3.2 静态编译的相关文章

(笔记)Linux下C语言实现静态IP地址,掩码,网关的设置

#include <sys/ioctl.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <net/if.h> #include <error.h> #include <net/route.h> int SetIfAddr(char *ifname,

Qt5.3.1 静态编译的configure

今天终于自己静态编译过了QT5.3.1, 成功用在项目上了, 记录下configure指令. configure -confirm-license -opensource -platform win32-msvc2013 -mp -debug-and-release -static -prefix "E:\Qt\5.3.1-static-vs2013" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-

linux下nginx,mysql,php(lnmp)编译安装

关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenforce 0 #使配置立即生效 mysql 5.5.28安装 安装路径:/usr/local/mysql数据库路径:/usr/local/mysql/data/ mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具

Linux 程序设计学习笔记----Linux下文件类型和属性管理

转载请注明出处:http://blog.csdn.net/suool/article/details/38318225 部分内容整理自网络,在此感谢各位大神. Linux文件类型和权限 数据表示 文件属性存储结构体Inode的成员变量i_mode存储着该文件的文件类型和权限信息.该变量为short int类型. 这个16位变量的各个位功能划分为: 第0-8位为权限位,为别对应拥有者(user),同组其他用户(group)和其他用户(other)的读R写W和执行X权限. 第9-11位是权限修饰位,

linux下的动态链接库和静态链接库到底是个什么鬼?(二)动态链接库的编译与使用

上一篇文章里讲解了linux下静态链接库的编译与使用,下面我们来聊聊动态链接库的编译与使用方法. 所谓动态链接库,也就是说编译的时候不会真的把你引用到的库给编到你的执行程序里,而是在执行时候才会去加载相关的库,所有用到此库的程序可以共享一份代码,这样带来的好处是可执行程序所占的空间变小了,同时,如果库需要升级,你并不需要重新编译你的程序,只要把相关的库升级即可. 接下来我们来看看动态链接库的编译与使用方法,代码还是和上文中的一样,分别为?sum.c, sum.h, 和main.c, 在linux

linux下动态链接库.so文件 静态链接库.a文件创建及使用

转摘网址为:http://www.cnblogs.com/fengyv/archive/2012/08/10/2631313.html Linux下文件的类型是不依赖于其后缀名的,但一般来讲:    .o,是目标文件,相当于windows中的.obj文件    .so 为共享库,是shared object,用于动态连接的,和dll差不多    .a为静态库,是好多个.o合在一起,用于静态连接    .la为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息.可以用如下命令

Linux 下创建和使用静态库

Linux 下使用 ar 工具(Windows 下vs使用lib.exe,将目标文件压缩到一起,并且对其进行编号和索引,以便于查找和检索),创建步骤如下图所示: Linux 下静态库命名规范, lib[your_library_name].a,其中lib为前缀,中间是静态库名,后缀名是 .a 1. 将源文件编译成目标文件 .o (假设源文件为 Math.cpp)  g++  -c  Math.cpp  执行此命令后,便会生成 Math.o 目标文件 2. 然后用 ar 工具将目标文件打包成 .a

(笔记)Linux下的准确延时,#include &lt;linux/delay.h&gt;调用出错

在编写应用层程序时,有时需要延时一下,这个时候该怎么办呢? 在内核代码中,我们经常会看到这样的头文件使用#include <linux/delay.h>,心想着直接调用这个就可以了吧!可是在编译时发现,压根通不过, 提示错误如下:error: No such file or directory. 是不是觉得很奇怪,明明文件是存在的,怎么就不能调用了,而且内核很多文件调用得很欢.这是为什么呢? 因为内核程序跟应用程序是有区别的,有些特殊的内核头文件编译器不允许被应用程序调用.故编译应用程序使用内

QT5.4 vs2013静态编译之加载静态插件sqlite

1. 很多同学在静态编译QT5完成后, sqlite的驱动老是加载不进去, 原因可能是因为你没有如下操作: #include <QtPlugin> Q_IMPORT_PLUGIN(QSQLiteDriverPlugin) 记得是 QSQLiteDriverPlugin 而不是 qsqlite 当然你在编译的时候的configure 要把插件编进去-plugin-sql-sqlite