We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【导语】:昨天编译Qt5各种失败,各种离奇的错误在Google上面也搜索不到,真是让人“蛋疼菊紧”,今天把所有的环境全部清理干净,也重新解压了Qt5.1.1的源码包,重新走了一遍,效果还可以,也没有出现PDA LTS什么库问题,现在整理一下详细过程和细节点。
另外说一下,我使用Qt5.8.0的源码包进行编译,我的OMAPL138的ARM9架构,在configure阶段就提示我your platform arch too old. 意思就是我的平台的架构太老了,所以如果在ARM9的架构上面编译Qt5,选择一个稍微老一点的版本。我这里选择Qt5.1.1
**再补充一点:如果在曾经执行过./configure这个命令了,如果出了问题进行修正,最好把这个源码包删除,重新解压一个源码包,说不定哪个配置属性就影响了后续的操作,我之前就是总在这个里,以为每次./configure都是重新配置,然而并不是这样。 **
下载qt-everywhere-opensource-src-5.1.1.tar.gz的解压,并且切换到这个目录。开始配置信息,我这里有配置好的文件,(链接: https://pan.baidu.com/s/1qYPyAoW 密码: 8eey)这个文件包含一个配置信息的run.sh脚本,和linux-arago-gnueabi-g++的架构信息文件夹。
把linux-arago-gnueabi-g++架构文件夹拷贝到./qtbase/mkspec文件夹里面,然后我们修改这个文件夹里面的qmake.conf文件,在程序内标定注意事项:
arch
# # qmake configuration for building with arm-arago-linux-gnueabi-g++ # MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib #Compiler Flags to take advantage of the ARM architecture #Run the linux terminal command "arch" to see the detail your target cpu arch information. QMAKE_CFLAGS_RELEASE += -O3 -march=armv5te QMAKE_CXXFLAGS_RELEASE += -O3 -march=armv5te include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = /home/delvis/opt/toolschain/omapl/arm-arago-linux-gnueabi/bin/arm-arago-linux-gnueabi-gcc QMAKE_CXX = /home/delvis/opt/toolschain/omapl/arm-arago-linux-gnueabi/bin/arm-arago-linux-gnueabi-g++ QMAKE_LINK = /home/delvis/opt/toolschain/omapl/arm-arago-linux-gnueabi/bin/arm-arago-linux-gnueabi-g++ QMAKE_LINK_SHLIB = /home/delvis/opt/toolschain/omapl/arm-arago-linux-gnueabi/bin/arm-arago-linux-gnueabi-g++ # modifications to linux.conf QMAKE_AR = /home/delvis/opt/toolschain/omapl/arm-arago-linux-gnueabi/bin/arm-arago-linux-gnueabi-ar cqs QMAKE_OBJCOPY = /home/delvis/opt/toolschain/omapl/arm-arago-linux-gnueabi/bin/arm-arago-linux-gnueabi-objcopy QMAKE_NM = /home/delvis/opt/toolschain/omapl/arm-arago-linux-gnueabi/bin/arm-arago-linux-gnueabi-nm -P QMAKE_STRIP = /home/delvis/opt/toolschain/omapl/arm-arago-linux-gnueabi/bin/arm-arago-linux-gnueabi-strip load(qt_config)
再来看run.sh的配置信息(注意给定run.sh chmod 777 权限)注意几个关键点:
#!/bin/sh ./configure \ -v \ -prefix /home/delvis/work/qt5.1.1 \ -release \ -opensource \ -no-accessibility \ -xplatform linux-arago-gnueabi-g++ \ -optimized-qmake \ -pch \ -qt-sql-sqlite \ -qt-zlib \ -no-opengl \ -no-sse2 \ -no-openssl \ -no-nis \ -no-cups \ -no-glib \ -no-pkg-config \ -nomake examples \ -lrt \ -no-separate-debug-info
执行sudo ./run.sh然后让它完成配置。
sudo ./run.sh
sudo make -j4 开始编译,编译的过程不可能是一帆风顺的,总会会出现各种的错误,自己找找错误解决吧
sudo make -j4
sudo make install之后进入我们-prefix的路径考培就好了。
sudo make install
就是把我们刚才编译的环境拷贝到我们的目标板的目录下,可以使用FTP,可以使用OTG挂在U盘的方式,我喜欢使用SSH协议的scp命令。
sudo scp -r /home/delvis/work/qt5.1.1 root@192.168.2.103:/opt 输入密码之后就可以把整个文件夹传输到开发板上面了。
sudo scp -r /home/delvis/work/qt5.1.1 root@192.168.2.103:/opt
我们传输完毕之后,则需要在开发板上设定环境,当我们运行qt程序的时候才能寻找到这些Qt库文件。
打开
vi /etc/profile
增加以下,需要注意的是QT_ROOT,写对Qt的路径,还有TSLIB_ROOT编译的是tslib的路径。
export TSLIB_ROOT=/opt/tslib1.4 export QT_ROOT=/opt/qt5.1.1 export TSLIB_TSDEVICE=/dev/input/event2 export TSLIB_TSEVENTTYPE=input export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export QWS_MOUSE_PROTO=tslib:/dev/input/event2 export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0 export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts export QT_QPA_GENERIC_PLUGINS=tslib
完成之后,更新一下环境。
source /etc/profile
完成配置。
我们利用Qt Creator制作一个简单的界面,然后编译出可执行文件,讲可执行文件传输到目标板子上面执行,我们的可执行程序叫做TestEM,需要qws参数。
./TestEM -qws
然后就可以看见界面了。
[0] Carlos Wei著,Linux编译Qt4的环境_OMAPL138. CNBLOGS
[1] leocloud著 QT5.7交叉编译安装到arm. CSDN博客.
[2] 灿哥哥著. Qt5.7.0配置选项(configure options). CSDN博客.
[3] BigSam78. ARM 指令集版本和ARM 版本. 新浪博客.
1. 本文为MULTIBEANS团队研发跟随文章,未经允许不得转载。
2· 文中涉及的内容若有侵权行为,请与本人联系,本人会及时删除。
3· 尊重成果,本文将用的参考文献全部给出,向无私的工程师,爱好者致敬。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Linux编译移植Qt5_OMAPL138
【导语】:昨天编译Qt5各种失败,各种离奇的错误在Google上面也搜索不到,真是让人“蛋疼菊紧”,今天把所有的环境全部清理干净,也重新解压了Qt5.1.1的源码包,重新走了一遍,效果还可以,也没有出现PDA LTS什么库问题,现在整理一下详细过程和细节点。
另外说一下,我使用Qt5.8.0的源码包进行编译,我的OMAPL138的ARM9架构,在configure阶段就提示我your platform arch too old. 意思就是我的平台的架构太老了,所以如果在ARM9的架构上面编译Qt5,选择一个稍微老一点的版本。我这里选择Qt5.1.1
**再补充一点:如果在曾经执行过./configure这个命令了,如果出了问题进行修正,最好把这个源码包删除,重新解压一个源码包,说不定哪个配置属性就影响了后续的操作,我之前就是总在这个里,以为每次./configure都是重新配置,然而并不是这样。 **
编译Qt5.1.1
1 准备工作
2 配置源码文件
下载qt-everywhere-opensource-src-5.1.1.tar.gz的解压,并且切换到这个目录。开始配置信息,我这里有配置好的文件,(链接: https://pan.baidu.com/s/1qYPyAoW 密码: 8eey)这个文件包含一个配置信息的run.sh脚本,和linux-arago-gnueabi-g++的架构信息文件夹。
把linux-arago-gnueabi-g++架构文件夹拷贝到./qtbase/mkspec文件夹里面,然后我们修改这个文件夹里面的qmake.conf文件,在程序内标定注意事项:
arch
命令查看)再来看run.sh的配置信息(注意给定run.sh chmod 777 权限)注意几个关键点:
执行
sudo ./run.sh
然后让它完成配置。sudo make -j4
开始编译,编译的过程不可能是一帆风顺的,总会会出现各种的错误,自己找找错误解决吧sudo make install
之后进入我们-prefix的路径考培就好了。拷贝文件到目标板并配置环境
1)传输Qt5.1.1到开发板
就是把我们刚才编译的环境拷贝到我们的目标板的目录下,可以使用FTP,可以使用OTG挂在U盘的方式,我喜欢使用SSH协议的scp命令。
sudo scp -r /home/delvis/work/qt5.1.1 root@192.168.2.103:/opt
输入密码之后就可以把整个文件夹传输到开发板上面了。2) 配置开发板的环境
我们传输完毕之后,则需要在开发板上设定环境,当我们运行qt程序的时候才能寻找到这些Qt库文件。
打开
vi /etc/profile
增加以下,需要注意的是QT_ROOT,写对Qt的路径,还有TSLIB_ROOT编译的是tslib的路径。
完成之后,更新一下环境。
source /etc/profile
完成配置。
3)测试
我们利用Qt Creator制作一个简单的界面,然后编译出可执行文件,讲可执行文件传输到目标板子上面执行,我们的可执行程序叫做TestEM,需要qws参数。
./TestEM -qws
然后就可以看见界面了。
参考文献:
[0] Carlos Wei著,Linux编译Qt4的环境_OMAPL138. CNBLOGS
[1] leocloud著 QT5.7交叉编译安装到arm. CSDN博客.
[2] 灿哥哥著. Qt5.7.0配置选项(configure options). CSDN博客.
[3] BigSam78. ARM 指令集版本和ARM 版本. 新浪博客.
版权声明:
1. 本文为MULTIBEANS团队研发跟随文章,未经允许不得转载。
2· 文中涉及的内容若有侵权行为,请与本人联系,本人会及时删除。
3· 尊重成果,本文将用的参考文献全部给出,向无私的工程师,爱好者致敬。
The text was updated successfully, but these errors were encountered: