linux中安装Qt 4.8.5

本文介绍了如何在Ubuntu系统上安装Qt 4.8.5,并准备将其移植到ARM开发板。首先,下载Qt 4.8.5源码,解压后通过配置脚本来生成makefile并进行编译安装。编译过程可能需要半小时左右。安装完成后,将库文件拷贝到开发板并设置环境变量,以确保在开发板上能正常使用。

首先说一下qt的基本知识

Qt Creator 与Qt 的联系

Qt库是一些封装好的代码,可以直接用,在写Qt程序的时候,要include需要的库。
而 Qt Creator 就是一个开发环境(IDE),集成了一些开发工具,方便开发。

好了,开始在PC机上安装qt,当然首先得下载qt版本的源码文件。这里为了后面能够移植到arm开发板上,最好选择同一个版本的QT 4.8.5,其版本号很多,有for windows的,有for linux的,有for embedded Linux的,这里我们就选Qt 4.8.5 for linux 和Qt 4.8.5 for embedded Linux 。

QT的编译与安装


1、拷贝文件到自己想要的文件夹,解压:

	tar zxvf qt-everywhere-opensource-src-4.8.4.tar.gz

2、进入解压后文件目录,执行配置

	cd qt-everywhere-opensource-src-4.8.4/

./configure 

此处也可以加上配置前缀./configure -prefix /opt/qt-4.8.4-x11

这样的话再后面编译过程中的文件会复制到/opt/qt-4.8.4-x11 这个目录下(目录不存在会自动创建),好处是源码便于管理,

关于这部分前缀配置可以我在config文件中找到这部分代码,可以参考,可以从这段代码中看出相应的配置以及没有配置的情况下默认安装目录,代码位于3594行,如下:

#------------------------------------------------------------------------------- # post process QT_INSTALL_* variables #------------------------------------------------------------------------------- #prefix if [ -z "$QT_INSTALL_PREFIX" ]; then     if [ "$CFG_DEV" = "yes" ]; then         QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default     elif [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then         if [ "$PLATFORM_QPA" = "yes" ]; then     QT_INSTALL_PREFIX="/usr/local/Trolltech/QtLighthouse-${QT_VERSION}"         else     QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}"         fi         if [ "$PLATFORM" != "$XPLATFORM" ]; then             QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}"         fi     elif [ -d "$EPOCROOT" ] && [ "$XPLATFORM_SYMBIAN" = "yes" ]; then         if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then             QT_INSTALL_PREFIX="$EPOCROOT/epoc32/"             QT_INSTALL_LIBS="$EPOCROOT/epoc32/release/armv5/lib/"         fi     else         QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION

接下来就会生成makefile文件,配置过程十来分钟左右。配置完毕后执行make。

接下来可以吃个饭或者睡一觉,编译时间大概3个小时左右,比较漫长,耐心等待吧。

经过漫长的等待之后,执行sudo make install来安装,会安装到/usr/local/Trolltech/Qt-4.8.4目录下。安装时间比较短,大概需要几分钟左右,至此,安装完成。

随后就是环境配置了

qmake这个命令需要进行环境变量的配置才能找到的到,我看了下我的系统里已经包含了这个命令了,只是路径不一样。测试如下:

qmake -v  查看qmake的版本
which qmake	查看qmake的安装路径
ls /usr/bin/qmake -ln   列出文件的详细信息并用数字的uid,gid 代替名称
ls /etc/alternatives/qmake -ln   
在看一下属性就清楚了,可以看到这个地方又链接回去了,那么如果还使用qmake命令的话实际使用的是qmake-qt3,这样就会出现错误。接下来开始修改

rm /etc/alternatives/qmake  先移除
ln -s /usr/local/Trolltech/Qt-4.8.4/bin/qmake /etc/alternatives/qmake  自己加链接
qmake -v  再次查看qmake
另外也可以通过修改环境变量来更新qmake
接下来开始安装arm embedded 版本的qt 4.8.5 在这之前要安装tslib

tslib是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。因此这里先编译安装tslib,这样在后面编译Qt的时候才能打包编译进去。

首先需要检查一下软件是否安装

sudo apt-get install automake
sudo apt-get install autogen
sudo apt-get install autoconf
确定以上工具都已经安装后,解压安装即可

指定安装路径是/usr/local/tslib

将交叉编译的tslib安装到开发板上其实就是拷贝相关的文件并添加系统环境变量而已,所以相对操作较为简单,主要的就是需要找对目录就行。

按照上面的操作方法,交叉编译安装后的文件在/usr/local/tslib目录下,因此需要拷贝的文件如下

  1. /usr/local/tslib/lib文件下除去pkgconfig目录外其他所有文件拷贝到开发板/lib目录下
  2. /usr/local/tslib/etc下的ts.conf拷贝到开发板的/etc下,在复制对应目录之前修改文件如下,也可以复制完成后修改。

下面是ts.conf文件的第一行与第二行

# Uncomment if you wish to use the linux input layer event interface
# module_raw input
去掉# module_raw input前面的注释,一定要注意中间的空格也去掉,module顶格

最后添加环境变量,通过超级终端在开发板系统中添加环境变量,可以在开发板文件系统的/etc/profile文件里添加,也可以直接添加

export TSLIB_TSDEVICE=/dev/input/event2 //触摸屏设备文件名
export TSLIB_CONFFILE=/etc/ts.conf //配置文件名
export TSLIB_PLUGINDIR=/lib/ts //插件目录


export TSLIB_CALIBFILE=/etc/pointercal //校准的数据文件,由ts_calibrate校准程序生成。
export TSLIB_CONSOLEDEVICE=none //控制台设备文件名 

export TSLIB_FBDEVICE=/dev/fb0
//设备名

最后运行测验程序

ts_calibrate 进行校验
ts_test      进行测试

OK!万事俱备,开始安装arm板的qt

先解压,和pc版本的一样 进入解压后的文件夹

和PC平台下的编译类似,通过运行./configure进行配置生成makefile文件,然后编译安装,只是因为是针对嵌入式平台需要进行一些针对性配置,这里生成一个自动配置文件,可以通过修改文件来方便的更改配置。(其实就是生成一个安装脚本)

vim autoconfig.sh

然后加入

#!/bin/sh
./configure \
-opensource \
-confirm-license \
-release -shared \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-depths 16,18,24 \
-fast \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-little-endian -host-little-endian \
-no-qt3support \
-no-libtiff -no-libmng \
-no-opengl \
-no-mmx -no-sse -no-sse2 \
-no-3dnow \
-no-openssl \
-no-webkit \
-no-qvfb \
-no-phonon \
-no-nis \
-no-opengl \
-no-cups \
-no-glib \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake docs \
-qt-mouse-tslib \
-I/usr/local/tslib/include \
-L/usr/local/tslib/lib


exit

运行./autoconfig.sh 生成makefile文件

接下来执行make 进行编译,时间同样需要很长的时间,视个人电脑配置而定,时间大概在半个小时左右吧。

最后make install安装,安装完成后可以在安装目录/usr/local/Trolltech/QtEmbedded-4.8.5-arm 下查看对应文件。

开发板配置



在开发板上的使用其实很简单,只需要拷贝相应的库文件并设置环境变量即可,拷贝的方法按照个人喜好,我是挂载nfs来实现拷贝。

在超级终端输入:

cp -R /mnt/Trolltech/QtEmbedded-4.8.4-arm/lib /opt/qt-4.8.5/

设置环境变量:(/etc/profile 文件)

export QTDIR=/opt/qt485
export LD_LIBRARY_PATH=$QTDIRlib:$LD_LIBRARY_PATH 
export PATH=$QTDIR/bin:$PATH 
export QWS_MOUSE_PROTO=tslib:/dev/input/event2 
export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0" 
export QT_QWS_FONTDIR=/opt/qt485/lib/fonts
在飞凌的OK6410板子中,是在/bin目录下放一个脚本文件,在脚本文件中设置变量来实现运行,这样可以为不同的程序进行单独的配置,也可以设置开机运行( /etc/init.d/rcS)等,用起来比较方便,下面是我的脚本文件,脚本中完成对所有环节变量的配置,当然这里是基于之前的改的,所以有些是多余的。最后运行的程序就是我放在opt目录下的qt程序。
#!/bin/sh
base1=qpe
pid=`/bin/pidof $base1`
if [ -n "$pid" ]; then
        killall $base1
fi

base2=qss
pid=`/bin/pidof $base2`
if [ -n "$pid" ]; then
        killall $base2
fi

base3=quicklauncher
pid=`/bin/pidof $base3`
if [ -n "$pid" ]; then
        killall  $base3
fi


base4=fluidlauncher
pid=`/bin/pidof $base4`
if [ -n "$pid" ]; then
        killall  $base4
fi

export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_TSEVENTTYPE=H3600
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export QTDIR=/opt/qt-4.7.1/


export LD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/:$QTDIR/lib:/root/tslib/build/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/root/tslib/build/bin


if [ -c /dev/input/event2 ]; then
        export QWS_MOUSE_PROTO="Tslib:${TSLIB_TSDEVICE}"
        if [ -e /etc/pointercal -a ! -s /etc/pointercal ] ; then
                rm /etc/pointercal
                /root/tslib/build/bin/ts_calibrate
        fi
else
        export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
        >/etc/pointercal
fi
export QWS_KEYBOARD=TTY:/dev/tty1



FB_SIZE=$(cat /sys/class/graphics/fb0/virtual_size)

#export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1"
case "$FB_SIZE" in
800,480)
export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1"
;;
480,272)
export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1"
;;
*)
export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1"
;;
esac
#export QWS_DISPLAY=:1



export HOME=/root/QtE4Home
cd /opt
./filename - qws
其中filename就是你的qt文件名

接下来就是安装qt creator
下载qt creator在linux下的安装文件qt-creator-linux-x86-opensource-2.6.1.bin,这是一个可直接执行的文件

sudo ./qt-creator-linux-x86-opensource-2.6.1.bin

接下来就是我们在windows 常见的软件安装界面
然后就来配置qt creator
首先打开这个IDE 

在主界面中从菜单栏点击"工具"->"选项"->在左侧点击“构建和运行”界面

这时我们就可以看到,IDE并没有自动识别安装的QT,这是因为在缺乏系统环境变量的情况下,不知道程序安装到了什么地方,所以这里需要手动设置,手动设置很简单,只需要点击添加,分别添加编译的两个版本的QT安装文件中的qmake文件即可,注意是安装文件,并不是之前解压的源文件。默认的安装路径为/usr/local/Trolltech这个文件夹下有两个文件夹,分别在这两个文件夹下找到bin下的qmake文件

到这里就告诉IDE 安装QT的位置了,由于需要进行编译开发,接下来还需要指定编译器,点击“编译器”选项卡

Qt Creator已经检测到X86的GCC,而我们要是做arm平台开发的话还需要指定用于arm开发的交叉工具链,我的安装路径为/usr/local/arm/4.3.2/bin/需要指定g++文件,如图中所示。配置完成后,点击“应用”。

QT和编译器指定完成后就需要进行下一步配置了,就是对这些工具进行组合,点击“构建套件(kit)”选项卡

我这里配置桌面和ARM两项,分别对应在PC和开发板两个平台。

到这里,基本配置就完成了

然后就可以用qt creator 进行界面开发了,

界面开发完成后点击 ”项目“--”添加构建套件“下方就会弹出我刚刚设定的ARM,在arm的构建设置中可以使用默认配置,其他相关选项可以参考桌面选项更改。点击build就会生成arm板上能运行的界面文件了

然后就可以把生成的可执行文件通过nfs 挂载拷贝到开发板上/opt 目录下,然后运行刚才在/bin 文件夹下建立脚本

这里我遇到了一个问题:运行的qt界面和系统自带的桌面界面听是存在,之间存在串屏的问题,

解决方法就是关掉所有系统自带的qtopia

ps // 查看当前运行的程序运作情况

然后观察与qtopia有关的程序pid

通过kill关闭他们,例如pid是50,则

kill -9 50

全部关闭后在运行你的qt脚本就ok了,另外如果想让你的系统开机只运行你的qt界面而不用每次都去关闭qtopia,你可以在开机自启动脚本中把qtopia替换为你的qt运行脚本




虽然给定引用是关于Ubuntu 16.04安装Qt 5.8的内容,未直接提及VMware虚拟机安装Qt4.8.5的方法,但可提供一个通用步骤示例: ### 1. 开发环境准备 - **虚拟机系统**:选择合适的Linux发行版,如Ubuntu 12.04(该版本对Qt4兼容性较好),安装在VMware虚拟机中。 - **Qt4.8.5安装包**:从Qt官方历史版本存档处下载适合Linux系统的Qt4.8.5安装包,如`qt-x11-opensource-src-4.8.5.tar.gz`。 ### 2. 安装系统依赖库 打开终端,输入以下命令安装必要的系统库: ```bash sudo apt-get install g++ sudo apt-get install libx11-dev libxext-dev libxtst-dev sudo apt-get install xlibmesa-gl-dev libglu1-mesa-dev ``` ### 3. 解压安装包 将下载好的`qt-x11-opensource-src-4.8.5.tar.gz`文件复制到虚拟机系统中,在终端中使用以下命令解压: ```bash tar -zxvf qt-x11-opensource-src-4.8.5.tar.gz ``` ### 4. 配置和编译 进入解压后的目录,执行以下命令进行配置和编译: ```bash cd qt-x11-opensource-src-4.8.5 ./configure make ``` `./configure`命令会检测系统环境并生成编译配置文件,`make`命令则开始编译Qt库,此过程可能需要较长时间。 ### 5. 安装Qt4.8.5 编译完成后,在终端输入以下命令进行安装: ```bash sudo make install ``` ### 6. 环境配置 安装完成后,需要配置环境变量,打开`~/.bashrc`文件: ```bash gedit ~/.bashrc ``` 在文件末尾添加以下内容: ```plaintext export QTDIR=/usr/local/Trolltech/Qt-4.8.5 export PATH=$QTDIR/bin:$PATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH ``` 保存文件后,执行以下命令使配置生效: ```bash source ~/.bashrc ``` ### 7. 验证安装 在终端输入以下命令,若能正常打开Qt Designer,则说明安装成功: ```bash designer ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值