我们需要版本4.8.4。
先下载SDK:
于是进入网页:
http://download.qt-project.org/archive/
http://download.qt-project.org/archive/qt/4.8/4.8.4/
这里下载的就是Qt的库代码。
我们下载qt-everywhere-opensource-src-4.8.4.tar.gz 即可
解压Qt库文件(相当于平时的JDK,ADK等):
tar -xzf qt-everywhere-opensource-src-4.8.4.tar.gz
安装Qt的依赖库:
sudo apt-get install libX11-dev libXext-dev libXtst-dev
sudo apt-get install libfontconfig1-dev (安装字体库,否则./configure -fontconfig无法通过【2015-12-09新增】)
注意需要用到g++
否则./configure时会报错:
配置:
./configure -fontconfig (如果没有-fontconfig就看不到中文字-【2015-12-09修改】)
cd qt-everywhere-opensource-src-4.8.4/
./configure -embedded x86 (因为我们的架构是x86架构) 应该直接 (这样图形界面等不可以用)。
这里安装出来开发不了GUI程序,需要根据嵌入式安装framebuffer。需要改用./configure
下面是开启framebuff的配置(实际上没有用,还不不能开发GUI程序)
接下来要你选择:
Which edition of Qt do you want to use?
Type 'c' if you want to use the Commercial Edition.
Type 'o' if you want to use the Open Source Edition.
一个是商业版,一个是自由版,我们选择自由版,输入o
然后同意license,输入:yes
接下来就等待配置......
执行编译:make 或者 make -j4 使用多线程编译
执行安装:sudo make install
安装完毕之后,Qt的库被安装在如下目录:
如果配置时直接是./configure,那么按章目录就是:
/usr/local/Trolltech/Qt-4.8.4
对于当时使用 ./configure -embedded x86 的话就是如下目录
/usr/local/Trolltech/QtEmbedded-4.8.4/
为了以后其他地方就难得编译了,直接把这个目录打包保存下来:
sudo zip -r QtEmbedded-4.8.4.zip ./QtEmbedded-4.8.4
但是保存了也没用。因为平台环境不一样,库不能直接挪用。
然后下载qt_creator
http://mirrors.ustc.edu.cn/qtproject/official_releases/qtcreator/ (这个链接也有,下载.run文件)
也可以下载老的版本:
http://download.qt-project.org/archive/qtcreator/2.5/
qt-creator-linux-x86-opensource-2.5.2.bin
13-Dec-2012 14:49
63M
Details
安装QT-Creator
chmod 777 qt-creator-linux-x86-opensource-2.8.1.run
安装然后再双击运行就可以安装了。注意需要在图形界面上,控制台无法安装这个可视化安装向导。
双击之后,就出现了安装向导了:
对于*.bin的格式,安装方式如下:
chmod 777 qt-creator-linux-x86-opensource-2.5.2.bin
./qt-creator-linux-x86-opensource-2.5.2.bin
然后按照提示,输入N个Enter
然后接受license:输入y
启动,配置:
如果启动报错:libstdc****之类的错误。见下面的错误处理。
测试:
新建一个GUI的helloworld程序,直接运行:
对于直接./configure的话:
但是:如果当时.configure选择了参数指定是嵌入式的话,结果报错:
No Qt for Embedded Linux server appears to be running.
If you want to run this program as a server,
add the "-qws" command-line option.
如果不是GUI的,就可以正常运行:
GUI不能运行的解决方案:
是因为对于embedded linux的qt版本,他是依赖于framebuffer,而不用Xwindow。但是默认framebuff是没有编译的
需要自己手动编译:
cd tools/qvfb/
make
但是报错:
#error qvfb must be compiled with the Qt for X11 package
网上查找到的资料是:
1 Qt linux 这个是基于x11的。
2 Qt embedded 这个是基于framebuffer的,不依赖于x11.
qvfb是一个x11平台的模拟器,用来模拟qt embedded的工作流程。
所以qvfb必须用x11平台的qt版本来编译。
同时你还需要一个qt-embedded版本.
https://qt-project.org/doc/qt-4.7/qvfb.html
但是还是没解决。。。。。
问题解决:
如果启动报错:
我们查看下libc的版本:
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
可以看出,没有3.4.15的版本。所以需要安装新的版本。
那么就需要更新libstdc++,我们直接
sudo apt-get install libstdc++6
是不行的。需要自己下载更新的版本:
http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/
这里附上下载的库。
下面就开始手动更换库,不能直接sudo dpkg -i ****.deb,因为有依赖项。我们直接解压替换litstdc即可。
ar -x libstdc++6_4.7.2-5_i386.deb && tar xvf data.tar.gz
su
usr/lib/i386-linux-gnu/
cp /home/fdr/soft_libs/usr/lib/i386-linux-gnu/libstdc++.so.6.0.17 /usr/lib/
cd /usr/lib/
sudo mv libstdc++.so.6 libstdc++.so.6_____lfbc # 去掉现有的连接
ln -s libstdc++.so.6.17 libstdc++.so.6
sudo ldconfig # 直接是链接的话,系统不能识别,需要执行这一句才可以,否则报错:qtcreator: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
然后再启动qt就OK了:
但是编译出错!!:libQtNetwork.so:-1: error: undefined reference to `__fdelt***********
目前找到原因了,是因为Qt的SDK使用的其他电脑上编译的,所以库不一样。这里不能用。
所以还是得重新编译SDK。不过这里的libstdc++是需要重新下载的。
make时报错:/usr/bin/ld: cannot find -lXrender
解决办法:清理configure,再次configure,再次make
这种错误一般是so名字的问题。按照规则,他是找libXrender.so
我们到/usr/lib下面找下看看:
可以看出,是名字不对,添加一个即可:但注意,这里不是这个原因。
sudo ln -s libXrender.so.1.3.0 libXrender.so
这里的原因其实是两次configure之间没有clean,导致makefile不对引起的。
执行make confclean即可,然后再次configure 以及再make
安装libfontconfig1-dev报错:
fdr@fdr:~/soft_libs/qt/qt-everywhere-opensource-src-4.8.4$ sudo apt-get install libfontconfig1-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libfontconfig1-dev : 依赖: libfontconfig1 (= 2.11.0-0ubuntu4) 但是 2.11.0-0ubuntu4.1 正要被安装
依赖: libfreetype6-dev (>= 2.1.7) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决办法:
是源的数据信息不够,需要添加完整的源列表,也就是要把搜狐或者网易提供的源全部加上才可以。
本文详细介绍了如何在Ubuntu系统中下载、安装Qt 4.8.4的开源版本,包括源码编译过程、依赖库的安装,以及遇到的错误和解决方案。同时,还讲述了安装Qt Creator的步骤,特别指出在图形界面下运行安装向导的必要性。

2万+

被折叠的 条评论
为什么被折叠?



