[QNX700]QNX使用QT的UI工具-qt5.9.7 移植到qnx 7.0

141 篇文章 22 订阅
114 篇文章 20 订阅

锋影

email:174176320@qq.com

如果你认为本系列文章对你有所帮助,请大家有钱的捧个钱场,点击此处赞助,赞助额0.1元起步,多少随意

 

声明:本文只用于个人学习交流,若不慎造成侵权,请及时联系我,立即予以改正

 

 

网上有一篇针对qt 4的 针对的是qnx6.6,很多配置参数也对应不上,总结一下我移植qt 5.9.7 到qnx7.0的过程

移植qt4.8到qnx

首先我的系统是Ubuntu 16.04.02 + qnx 7.0  + qt 5.9.7 

1.准备工作:

1.1 ubuntu 系统自行下载安装, qnx7.0 自行配置安装;

1.2 qt 5.9.7 源码包下载:

http://download.qt.io/archive/qt/5.9/5.9.7/single/ 

选择qt-everywhere-opensource-src-5.9.7.tar.xz 

下载 源码解压到你的某个目录下面如 ~/Download/qt/qt-everywhere-opensource-src-5.9.7

 

1.3 配置 qnx 环境变量:

      如果你是bash环境,直接运行 source ~/qnx700/qnxdsp-env.sh 

然后运行echo $PATH 查看 qnx环境变量是否设置成功

      如果 你像我用的zsh 环境,可以切换成bash 运行上面命令,我的做法是 vim ~/.zshrc 在最下面添加如下几行
export QNX_HOST=/home/panda/qnx700/host/linux/x86_64
export QNX_TARGET=/home/panda/qnx700/target/qnx7
export MAKEFLAGS=-I/home/panda/qnx700/target/qnx7/usr/include
export QNX_CONFIGURATION=/home/panda/.qnx
export PATH=$PATH:/home/panda/qnx700/host/linux/x86_64/usr/bin:/home/panda/.qnx/bin:/home/panda/jre/bin
注意: 其中的路径需要改为自己系统的安装路径

然后source ~/.zshrc

echo $QNX_TARGET 查看qnx 环境变量是否设置成功

2. 编译 qt

2.1 首先进到qt 源码目录下配置 编译选项 也可以新建个autoconfig.sh脚本执行配置.

cd ~/Download/qt/qt-everywhere-opensource-src-5.9.7/

./configure -opensource -confirm-license -shared -release -xplatform qnx-armle-v7-qcc   -no-rpath -reduce-exports -system-sqlite -continue  -no-openssl -nomake examples -nomake tests -force-debug-info -separate-debug-info -prefix /opt/qt5.9.7

参数解释 :

-opensource 创建开源版本的qt

-confirm-license自动确认许可

-release 发行版本

-shared 创建并链接QT共享库

-xplatform 选择交叉编译目标板mkspec

-no-rpath 较难理解  不使用库安装路径作为一个运行时库路径 

-reduce-exports 减少信息打印

-system-sqlite 

-no-openssl   SSL,Security Socket Layer,是一个安全传输协议,在Internet网上进行数据保护和身份确认,而OpenSSL是一个开放源代码的实现了SSL及相关加密技术的软件包,在qt中,我们可以选择直接支持,或者OpenSSL链接支持,这个参数也是为有需要者提供的。

-nomake 选择不编译某些模块

-continue  发生错误,编译继续,最后处理错误

-force-debug-info  即使在调试版本中也进行优化 

-separate-debug-info 将调试信息到一个单独的文件

-prefix 默认安装路径


sudo make install  #make install 的时候出现问题,问题解决请参考文后
make  -j4 //大约编译了1个小时(thinkpadT470)

 注意:qnx-armle-v7-qcc 是针对arm32位系统,由于项目需要,我特别编译了aarchle64 和x86-64 位系统的 编译成功

2.2 configure 配置完成

3. 将生成的库拷贝到目标qnx 系统中

目标板中usr下新建qt5目录 将生成的libs plugins和 qml 三个文件夹拷贝过来,为了避免软链接问题,可以压缩拷贝再解压.

目标板设置qt的环境变量,可以写到/etc/profile中,也可以自己写个脚本,执行应用程序的时候再加载;在profile 中添加如下

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/qt5/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/qt5/plugins
export QT_PLUGIN_PATH=/usr/qt5/plugins
export QML2_IMPORT_PATH=/usr/qt5/qml

4. 在本机上新建一个qt-qnx 工程, 将生成的exe 拷贝到目标板,运行,会提示需要什么库,然后从交叉编译的工具库中拷贝过去.

具体的本机如何配置新编译的qt-for-qnx 工具链在下一篇博客中详细介绍.同时介绍如何在目标板正确执行qt 程序以及中文的支持等.

附上链接:QNX7.0 平台QT开发环境配置(详细)

错误备注:
sudo make install。由于安装到系统目录/opt/qt5.9.7,所以加了sudo执行。就这步,出现了问题:
 make[1]: ntoarmv7-ranlib: Command not found
 检索发现ntoarmv7-ranlib可以在系统的qnx PATH中找到,因为我已经把qnx 环境变量添加到了PATH中。
 那为什么还提示说找不到ntoarmv7-ranlib呢?
 原因如下:
 1.我添加arm交叉编译器目录到PATH中是放在~/.zshrc里的,这是用户的配置文件,我的用户为panda。
 2.执行make install时,加了sudo前缀,变成了root的工作环境和root的权限。
 根据以上两点,make install是在root下做的,而ntoarmv7-ranlib在panda用户的工作环境中才能找到。所以产生了这里的错误。
 那我既要取得root权限,又要具有当前用户yan的工作环境,怎办呢?
 解决如下:
 执行make install之前,先用下sudo -i命令取得root权限。然后再执行make install。
 su 和 sudo 的区别:
 1.共同点:都是root用户的权限;
 2.不同点:su仅仅取得root权限,工作环境不变,还是在切换之前用户的工作环境;sudo是完全取得root的权限和root的工作环境。
 注意:sudo su切换到root时原用户的环境变量也一并丢失。应使用sudo -i
 索性就手动添加PATH环境变量

export PATH=$PATH:/home/panda/Downloads/arm/gcc-linaro-arm-linux-gnueabihf-4.9/bin/
export QNX_HOST=/home/panda/qnx700/host/linux/x86_64
export QNX_TARGET=/home/panda/qnx700/target/qnx7
export MAKEFLAGS=-I/home/panda/qnx700/target/qnx7/usr/include
export QNX_CONFIGURATION=/home/panda/.qnx
export PATH=$PATH:/home/panda/qnx700/host/linux/x86_64/usr/bin:/home/panda/.qnx/bin:/home/panda/jre/bin
 然后make install,安装成功

 

参考链接: 

http://community.qnx.com/sf/discussion/do/listPosts/projects.qt/discussion.general.topc27009  

https://blog.csdn.net/zxpcus/article/details/79310288 

https://wiki.qt.io/Building_Qt_for_QNX_Neutrino_OS

 

 

 

 

 

 

 

 

 


--------------------- 
作者:oadaaa 
来源:CSDN 
原文:https://blog.csdn.net/p942005405/article/details/83616590 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值