Ubuntu18.04 ARM 编译安装qtqtcreator,及操作过程中异常解决方式

Posted 6年老菜鸡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu18.04 ARM 编译安装qtqtcreator,及操作过程中异常解决方式相关的知识,希望对你有一定的参考价值。

这里是Ubuntu18.04 ARM ,编译安装的是qt 5.9.7 , qtcreator 4.7.1 

1 、 准备好qt、qtcreator源码包, 

        qt 5.9.7 下载地址:点击下载

        qtcreator 4.7.1 下载地址:点击下载

2、安装依赖

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gperf
sudo apt-get install libxcb*
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut3-dev
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install libx11-dev libxext-dev libxtst-dev
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
sudo apt-get install libxkbcommon-x11-dev

3、安装 qt

 3.1 将下载好的 qt 源码解压,并进入解压后的目录

 3.2 解压命令有两行,因为有两层压缩,或者图形界面操作,右键 - 提取到此处                

xz -d qt-everywhere-opensource-src-5.9.7.tar.xz
tar -xvf qt-everywhere-opensource-src-5.9.7.tar

   3.3 解压好后,进入目录 ,执行脚本

cd qt-everywhere-opensource-src-5.9.7
./configure

可能会出现 报错 make:***[module-qtbase-make_first] Error 2

解决方式:执行 make clean
然后清除QT源码文件,清除编译QT是产生的临时文件,再重启,重新释放Qt源码

     3.4 选择版本(o)和接受协议(y)

     3.5 编译 , 如果比较慢的话就多线程,多线程会很卡可能会出现报错,建议空闲挂机make

          编译 3 ~ 12 小时 

make
或者
make -j2 

 报错: makefile:638:recip for target”xxxxxxx“ failed

解决方式:执行 make clean
清除编译时产生的临时文件,在源码目录内创建临时文件夹,在临时文件夹内再次编译,修改编译后放置目录

报错: make:***[Makefile:337:module-qtdeclarative-make_first] Error 3

解决方式:python 可能被python2 或 python3 代替了,导致映射不到。
 ls /usr/bin/python*  查看有没有python
没有的话创建软连接: ln -s /usr/bin/python3 /usr/bin/python

      3.6 安装           默认安装目录在 /usr/local/ 下

sudo make install 

       3.7 配置环境变量  , 打开配置文件

sudo vim /etc/profile

        3.8 写入环境变量,将一下内容加入到配置文件末尾

(注意安装路径填写实际安装路径,避免出错)

export QTDIR = /usr/local/Qt-5.7.1
export PATH = $QTDIR/bin:$PATH
export MANPATH = $QTDIR/man:$MANPATH
export LD_LIBRARY_PATH =  $QTDIR/lib:$LD_LIBRARY_PATH

        3.9 使环境变量生效

source /etc/profile

        3.10 验证是否生效 , 正常会有版本信息输出

qmake -v

4 安装 QtCreator

        4.1 解压 qt-creator-opensource-src-4.7.1.tar.gz 到当前目录         

tar -zxvf qt-creator-opensource-src-4.7.1.tar.gz

        4.2 进入解压后的目录,并创建临时目录 ,  进入临时目录

cd qt-creator-opensource-src-4.7.1
mkdir build
cd build

        4.3 开始编译 ,编译比较慢就用多线程, make - j2 

        编译时间较长,建议挂机 make 

qmake -r
make 

        4.4 安装

sudo make install

        4.5 安装完以后,就可以打开QtCreator

        可能会报错:找不到.... makefile 配方 ....

        解决方式:删除构建目录下的 makefile
                        在 QtCreator 构建设置下,设置构建环境,
                        清除系统环境变量✔

 QtCreator - 项目 - 构建设置 - 构建环境 - 详情 - 清除系统环境变量

添加项目后,启动qt-creator的时候可能会报错:覆盖xxxx文件失败

解决方式:运行QtCreator 的时候给权限

使用命令行启动 qt-creator
sudo ./qtcreator

qtcreator 可能在 (在 /usr/bin 或 /bin/ 目录) , 

或者用 whereis qtcreator 查找一下路径

ps:我这里安装了两个 qtcreator ,用源码安装的中文乱码,于是用命令行又安装了一个

Ubuntu 系统下安装gcc-arm-none-eabi编译STM32工程

    在使用rikirobot机器人做ROS下的导航实验是,粗心大意将底层控制板烧坏,买了个新的电路板重新开始.在编译商家各处的STM32源代码时,Ubunt下总是出现了/arm-none-eabi-gcc/bin/ld:cannot find -lstdc++的错误,这是一个链接错误,使用arm-none-eabi-gcc编译器时总是连接不到libstdc++.首先尝试使用网上给出的一种方法,原因认为是在64位系统下编译32位的工程需要把32位的库包含进来,使用如下命令

1 sudo apt-get install gcc--multilib

操作之后还是没有变化,由于我的Ubuntu系统是32位,并且系统库中是包含libstdc++的,所以应该不是这个原因.考虑可能是系统自带的arm-none-eabi-gcc不好用,于是卸载重新安装交叉编译器,使用的是http://www.linuxidc.com/Linux/2015-08/121322.htm中给出的方法,版本是4.9

sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi

会显示软件未经过验证,我认为可以不用管,接着对STM32工程进行编译,成功!

以上是关于Ubuntu18.04 ARM 编译安装qtqtcreator,及操作过程中异常解决方式的主要内容,如果未能解决你的问题,请参考以下文章

在x86的Docker中构建TVM的ARM环境

在x86的Docker中构建TVM的ARM环境

_未完成;交叉编译QT5.9安装到嵌入式arm板子上

海思交叉编译器安装

Ubuntu 18.04 编译 ijkplayer

Ubuntu 18.04 手动编译安装 ffmpeg