ubuntu12.04 下编译qt-4.6.0总结
来源:互联网 发布:北京婚纱摄影口碑 知乎 编辑:程序博客网 时间:2024/05/17 23:56
qt-4.6.0可为是比较老的版本了,在新版的ubuntu上编译可为是困难重重,但在嵌入式开发和软件移植中依然起着桥梁作用,以此文章总结一下编译时遇到的困难。
编译环境:
qt-everywhere-opensource-src-4.6.0.tar.gz (可以在qt ftp上下载)
g++-4.4;gcc-4.4
openssl-0.9.8q
libx11;libfreetype6;libavahi-gobject;libsm;libxrender;libfontconfig;libxext (可以通过apt-get install获得)
编译过程:
ubuntu12.04版本中默认的g++版本是4.6,但4.6版本的g++,gcc无法编译。在编译时不会报错,但在连接qt库时会无法应用。所以要安装最适合编译qt各种版本的g++-4.4和gcc-4.4。安装完后查看g++目录(gcc方法相同)。
ls /usr/bin/g++* -l //查看g++目录,发现默认g++ ->g++-4.6
sudo rm /usr/bin/g++ //删除软连接
sudo ln -s /usr/bin/g++ /usr/bin/g++ //从新建立连接
g++ -v
设置gcc-4.4的方法同上。
Openssl的安装比较麻烦,可以用新立得,删除自带的Openssl-1.0.1,下载openssl-9.8.0q的源码http://ftp.openssl.org/source/openssl-0.9.8q.tar.gz 为什要用低版本的openssl,原因在于高版本的openssl修改了很多关于ssl的部分,会导致编译出错。
编译源码
tar -zxf openssl-0.9.8q.tar.gzcd openssl-0.9.8q/./config --prefix=/usr/local --openssldir=/usr/local/sslmake && make install./config shared --prefix=/usr/local --openssldir=/usr/local/sslmake cleanmake && make install
两次编译生成动态连接库。解决了无法找到opensslv.h
这时候我们要对qt的源码进行修改主要是针对SSLV2错误的处理。由于SSLV2已经很少使用,在这里我们采用直接注释掉代码的方法。打开qt的源码目录../qt-everywhere-opensource-src-4.6.0/src\network\ssl。找到qsslsocket_openssl_symbols.cpp和qsslsocket_openssl_symbols_p.h打开,将其中的存在参数SSLv2_client_method和SSLv2_server_method所在的所有行,将其整行注释掉。这样就解决了编译时出现的
undefined reference to SSLv2_server_method
undefined reference to SSLv2_client_method
编译qt
./configure -xxxx //xxxx为不需要的模块或连接动态连接库make sudo make install
这样编译就差不多完成了。但还没有加入环境变量在qt目录下
export QTDIR=/usr/local/Trolltech/Qt-4.6.0export PATH=$QTDIR/bin:$PATHexport QMAKESPEC=$QTDIR/mkspecs/default
这样算是大功告成了,编译qt make时间很长,大概1h-2h,要看./configure的模块而定
- ubuntu12.04 下编译qt-4.6.0总结
- ubuntu12.04下QT编译无法显示中文的解决方法
- ubuntu12.04 Qt WebKit编译
- ubuntu12.04下安装QT
- ubuntu12.04下安装QT
- ubuntu12.04下安装QT
- ubuntu12.04下安装QT
- ubuntu12.04下安装QT
- ubuntu12.04下安装Qt
- Ubuntu12.04编译问题总结
- Ubuntu12.04下编译ffmpeg
- ubuntu12.04下编译chrome
- ubuntu12.04下qt无法拖放控件
- Ubuntu12.04下hadoop-2.7.0编译-配置
- Ubuntu12下嵌入式Qt开发环境配置总结
- Ubuntu12.04LTS 编译android 错误总结
- ubuntu12.04下安卓编译环境搭建总结
- ubuntu12.04下安卓编译环境搭建总结
- Android的shape美化
- 多态与虚函数
- 回调函数(callback Function)
- Codeforces Beta Round #65 (Div. 2)——A,B,C
- doT来了
- ubuntu12.04 下编译qt-4.6.0总结
- 设计模式之观察者(Observer)模式
- ArrayList、LinkedList、 Vector、Map 用法比较
- SSH框架在用ajax插入数据的时候报错
- Servlet技术和Servlet生命周期:
- 实例讲解虚拟机3种网络模式(桥接、nat、Host-only)
- __int64 与long long 的区别
- PE 47(Distinct primes factors-Python数组)
- The GDI Coordinate Systems, SetViewportOrg, SetWindowExt, SetViewportExt, SetMapMode