由于新公司很多旧的软件都是基于这个版本做的嵌入式开发。
所以想要自己搭一套基于Linux的非嵌入式开发环境,方便用来调试和编译代码。
这样就可以完成在linux下开发,然后直接嵌入式打包,涉及到界面的部分就不需要上机调试看问题了。
所以就开始踩坑的过程。主要是以下几个问题
1.Qt4.5.3的在linux上只能源码编译安装,需要找低版本的gcc,找gcc的过程很麻烦
2. ubuntu上的报错问题
问题1的解决过程:
对Qt4.5.3支持的最好的gcc是4.2.x系列,已经是十几年前的东西了。4.3.x也可以很好的兼容,4.4.x理论上应该也可以。
但是ubuntu的镜像源上,很难找到低版本的gcc
也就是无法用 sudo apt-get install gcc-4.2 gcc-4.3完成安装。我找了很长时间都没找到。至找打了这几个的安装包,也就是deb包,安装的时候,也是各种坑。最后放弃
最后只能用找到的最低版本的4.4.7去编译,请参考这篇文章安装gcc g++4.4
ubantu20-安装gcc-4.4-g++-4.4_42ggcc-CSDN博客
总结下来,就是更新sources.list中的ubuntu源的版本,由于gcc4.4在低版本的ubuntu的源里,所以更新后,就能安装了
问题2的解决过程:
主要是执行:./configure
时候提示make 没有安装
执行: sudo apt-get install make
sudo apt-get install make
缺少x库时候执行:sudo apt-get install libx11-dev libxext-dev libxtst-dev
sudo apt-get install libx11-dev libxext-dev libxtst-dev
一开始X用的大写,换成小写就行了。
安装这三个库以后,开始编译。具体过程参考这篇文章
https://www.cnblogs.com/sggggr/p/17898089.html
把里边的源码换成4.5.3就行了。其他不要多余安装什么库,只需要安装上面这三个
后面进入源码目录,直接
sudo ./configure
依次输入o
yes
结束后执行:
sudo make -j4
-j4是开启4核编译,我的虚拟机最多4个核心,所以就只能是-j4
最后很顺利编译完成了。
执行 sudo make install
Qt4.5.3的默认安装路径是在 /usr/local/Trolltech
添加qmake路径下就行了
sudo vim /etc/profile
把下面的添加到最后
export QTDIR=/usr/local/Trolltech/Qt-4.5.3
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
source /etc/profile
最后输入 qmake -v 就i可以看到了
我用的不是ubuntu版本我用的是XUbuntu版本。
过程踩坑比这个多,我装了好几个虚拟机,一开始在22.04上用gcc4.7 编译不行。用gcc4.4.7编译也不行。
最后 换了这个XUbuntu的版本才算搞定。然后安装一个qtcreator4.0.3
下载链接在这里
Index of /archive/qtcreator/4.0/4.0.3
新建工程,运行
新公司电脑配置太低了,用的是XUbuntu,比ubuntu更节省硬件。
用起来还是有点不太舒服的。
后面空了,看下能不能在ubuntu18.04上完成编译,昨天装ubuntu18.04的桌面版的时候很长时间都没装好
后记:
-------------------------------------------------
用了两天没啥问题,突然发现中文文本显示不了。原因是编译时候自带的字体库太少了,具体可以运行/bin/qtconfig,切换到font下查看。里边有Song Ti 可以显示中文。代码中强制使用这个就可以显示中文了。
不过字体很别扭,不知道什么原因。
想要更多字体,源码编译需要增加-fontconfig,这样就会找fontconfig的字体库
在这之前需要安装相应的库如下:
sudo apt-get install libfreetype6-dev
sudo apt-get install libfontconfig1-dev
./configure -fontconfig -nomake examples
重新配置编译
编译时,可能遇到libpng库版本问题,也就是电脑上的libpng是新的,和Qt4.5.3使用的版本不匹配,换成1.2版本可以解决。
执行语句:
apt-get install libpng12-dev zlib1g-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g-dev is already the newest version (1:1.2.11.dfsg-0ubuntu2.2).
The following packages will be REMOVED:
libpng-dev //这里删除新的
The following NEW packages will be installed:
libpng12-0 libpng12-dev //这里安装旧版本的
0 upgraded, 2 newly installed, 1 to remove and 56 not upgraded.
Need to get 324 kB of archives.
After this operation, 374 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://dk.archive.ubuntu.com/ubuntu trusty/main amd64 libpng12-0 amd64 1.2.50-1ubuntu2 [117 kB]
Get:2 http://dk.archive.ubuntu.com/ubuntu trusty/main amd64 libpng12-dev amd64 1.2.50-1ubuntu2 [206 kB]
Fetched 324 kB in 2s (131 kB/s)
Selecting previously unselected package libpng12-0:amd64.
(Reading database ... 173626 files and directories currently installed.)
Preparing to unpack .../libpng12-0_1.2.50-1ubuntu2_amd64.deb ...
Unpacking libpng12-0:amd64 (1.2.50-1ubuntu2) ...
dpkg: libpng-dev:amd64: dependency problems, but removing anyway as you requested:
libfreetype6-dev:amd64 depends on libpng-dev.
(Reading database ... 173638 files and directories currently installed.)
Removing libpng-dev:amd64 (1.6.34-1ubuntu0.18.04.2) ...
Selecting previously unselected package libpng12-dev.
(Reading database ... 173614 files and directories currently installed.)
Preparing to unpack .../libpng12-dev_1.2.50-1ubuntu2_amd64.deb ...
Unpacking libpng12-dev (1.2.50-1ubuntu2) ...
Setting up libpng12-0:amd64 (1.2.50-1ubuntu2) ...
Setting up libpng12-dev (1.2.50-1ubuntu2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1.5) ...
root@Ubuntu1804V:/home/niuben/qt-x11-opensource-src-4.5.3/src/gui/image# sudo apt install libpng12-0
Reading package lists... Done
Building dependency tree
Reading state information... Done
libpng12-0 is already the newest version (1.2.50-1ubuntu2). //这里是已经安装好的
libpng12-0 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 56 not upgraded.
root@Ubuntu1804V:/home/niuben/qt-x11-opensource-src-4.5.3/src/gui/image#