一、前言
许多人可能喜欢一键安装Qt,直接点击下一步再下一步,最后完成就算大功告成。是的,那样确实很方便快捷;但只能享用所安装的库文件,可惜了Qt的哪些丰富的源码。如果是嵌入式行业,在移植Qt时,肯定需要用平台所指定的编译器来编译Qt的源码,同时还可以在Qt库增加或修改一些调用,这就是代码开源的好处,只要有了源代码,什么平台环境都无所谓;本文记录了从下载资源、安装虚拟机与Linux系统,着重介绍了Linux与Windows字幕复制共享以及文件共享的问题,以及PC版Qt5.8环境的配置。
二、Linux与Windows字幕复制共享以及文件共享
虚拟机VMware12.0.0
linux系统ubuntu16LTS.0403
虚拟机之前已经安装好了,注意给自己新建的虚拟机分配尽量大一点的内存,方便后续的扩展,搭建环境Qt环境要分pc版本、embedded版本;安装好Linux系统之后,在虚拟机安装系统的时候会设置用户名以及密码,是用来登陆用的,Linux系统还有个root权限需要设置;
为以后能正常安装软件,先升级补丁(不升级会导致某些软件安装失败)
先update再upgrade(注意权限),我从更新到完成使用了80分钟左右;
为了更方便地编辑文本,先安装下vim工具与samba共享时
sudo apt-get install vim
发现apt-get install命令失效,提示
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
因为apt还在运行,kill掉apt相关的进程、删除锁定文件,再重新配置
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a
1.VMware Tools实现共享
为了操作方便,最好实现linux与windows的共享,我先是安装VMware Tools实现共享,点击虚拟机如图的重新安装VMware Tools,ubuntu就会自动弹出一个窗口,里面有个.tar.gz后缀的VMware Tools的压缩包,把他拷贝到/opt路径下就行解压(也可以是其他路径,注意权限)
得到一个vmware-tools-distrib目录,进入该目录,运行vmware-install.pl文件,一直按enter键,安装完成之后/mnt/目录下多了一个hgfs目录,ls改目录出现了下面的错误
打开虚拟机菜单虚拟机中的设置,把已禁用改成总是启动,并且添加一个windows路径下的共享文件夹,
把要从windows要拷贝的qt源码压缩包放在该目录下,在linux端再启用cp命令即可
实现windows与ubuntu的文字复制与粘贴(重启系统即可)
1.samba服务实现共享
安装samba的插件:
sudo apt-get install samba
sudo apt-get install smbclient
创建共享目录与共享文件
sudo mkdir -p /home/samba/share
sudo chmod 777 /home/samba/share
sudo vim samba.txt
输入hello QT
备份和修改samba的配置文件
sudo /etc/samba/smb.conf /etc/samba/smb.conf_bak_20171106
sudo vim /etc/samba/smb.conf
在Global Seetings下面添加
在Share Sefinitions最下面添加
添加的内容
为sat用户(我登陆的用户是sat)创建samba服务器密码
sudo smbpasswd -a sat
运行samba服务
查看登录用户作为服务端的IP地址
切回windows系统打开我的电脑,输入要访问的IP地址
输入要访问samba服务的登录用户,和刚设置的samba服务密码
samba共享成功
三、配置PC端的Qt环境
1、运行Qt的Designer
Qt开源包
但我在配置Qt5.9的时候弹出了错误,如下。目前没解决,有朋友知道怎么解决的可以留言交流;之后就配置Qt4.7的版本,完成之后觉得Qt5比Qt4的性能提高了不少,又配置了一版Qt5.8的版本
ERROR: The OpenGL functionality tests failed!//度娘由相关的解决方案,但我尝试几次都无效,
在配置Qt5.8只遇到一个问题:
QT virtual memory exhausted: Cannot allocate memory//度娘的free -m查看后,再新建个Swap的方法没试过,感觉应该不行,因为我的Swap total值不是零
关机把虚拟机内存1G改成4G就OK了
方法都是一样的,下面是运行Qt5.8 Designer的图
当用Qt5环境make编译Qt4的代码提示fatal error: QApplication: No such file or directory错误,原因是:Qt5把很多桌面控件添加到Qt Widgets模块;
在qmake -project后会自动生成的.pro,在最后面添加
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
也可以在.cpp文件中的头文件制定路径
#include <QtWidgets/QApplication>
下面是Qt4.7的详细配置过程
sudo tar -zxvf qt-everywhere-opensource-src-4.7.0.tar.gz//解压QT源码包
cd qt-everywhere-opensource-src-4.7.0//进入解压完成的压缩包
./configure//配置
我配置的开源版,需要更多的功能配置,请的输入./configure -help查看
配置完成之后,先make(时间较长)
再make install
/usr/local/Trolltech/Qt-4.7.0/bin/designer & //后台运行Qt成功,安装完成
2、Qt Designer显示中文风格以及ubuntu系统添加中文输入法
点击ubuntu系统桌面右上角有齿轮标记的设置,如下
System Settings–>Language Support–>Install/Remove Languages
选chinese后再选择apply
实现了Qt界面的中文显示
安装ibus框架,可以添加中文输入法
sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4
im-config -s ibus
sudo apt-get install ibus-pinyin
sudo ibus-setup//弹出设置框,把English(US)先Remove(不移除貌似不能切到中文输入法),把Pinyin再Add行,
设置前
设置后
通过Shift键就可以中英输入法的切换
四、测试
设置环境变量的值:
export QTDIR=/usr/local/Trolltech/Qt-4.7.0
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
设置用户环境变量和系统配置的环境变量:(把上面环境变量的值添加到两个文件的最后面)
sudo vim /home/sat/.bashrc
sudo vim /etc/profile
```
qmake -v //发现还是找不到qmake
source /etc/profile / /让更改的配置文件生效
sudo mkdir -p /opt/qt_test //建一个测试目录
sudo vim hello.cpp
采用最经典参考书《C++ GUI Qt4》的代码进行测试
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[]){
QApplication app(argc,argv);
QLabel *label = new QLabel("Hello Qt");
label->show();
return app.exec();
}
sudo qmake -project //建立一个工程,自动生成一个.pro文件
在用qmake建立工程的时候遇到的问题:
指令:qmake -project
(错误提示:Failure to open file: /opt/qt_test//qt_test.pro
Unable to generate project file.)
指令:sudo qmake -project
(错误提示:qmake: could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’: No such file or directory)
指令:qmake -v
(能够找到qamke的版本和路径)
原因:qtchooser默认选择的路径没有设置qmake路径
sudo vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
第一行修改为我们qmake的路径即可,qmake -v 可以查看:
sudo qmake qt_test.pro//会自动生成一个Makefile
sudo make//编译成.o文件,再链接生成可执行的二进制文件
./qt_test//运行可执行文件就得到了窗口
后续会更新关于Qt creater集成开发环境的使用,以及制定交叉编译器编译Qt并移植;