QT Arm Linux 面向搜索引擎编程 新手入门 问题一览
张静茹 2019-8-16Linux

ARM 4418 开发板 使用 Ubuntu Mate系统

apt-get update 无法更新 安装软件 挂代理无效


更改/etc/apt/sources.list 

## Note, this file is written by cloud-init on first boot of an instance 
## modifications made here will not survive a re-bundle. 
## if you wish to make changes you can: 
## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg 
##     or do the same in user-data 
## b.) add sources in /etc/apt/sources.list.d 
## c.) make changes to template file /etc/cloud/templates/sources.list.tmpl

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to 
# newer versions of the distribution. 
deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial main restricted 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial main restricted


## Major bug fix updates produced after the final release of the 
## distribution. 
deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial-updates main restricted 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial-updates main restricted 

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team. Also, please note that software in universe WILL NOT receive any 
## review or updates from the Ubuntu security team. 
deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial universe 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial universe 
deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial-updates universe 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial-updates universe



## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu 
## security team. 
deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial-updates multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial-updates multiverse



## N.B. software from this repository may not have been tested as 
## extensively as that contained in the main release, although it includes 
## newer versions of some applications which may provide useful features. 
## Also, please note that software in backports WILL NOT receive any review 
## or updates from the Ubuntu security team. 
deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial-backports main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial-backports main restricted universe multiverse 

deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial-security main restricted 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial-security main restricted 
deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial-security universe 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial-security universe 
deb http://mirrors.ustc.edu.cn/ubuntu-ports xenial-security multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports xenial-security multiverse 

## Uncomment the following two lines to add software from Canonical's 
## 'partner' repository. 
## This software is not part of Ubuntu, but is offered by Canonical and the 
## respective vendors as a service to Ubuntu users. 
# deb http://archive.canonical.com/ubuntu xenial partner 
# deb-src http://archive.canonical.com/ubuntu xenial partner


[修改于 17 天前 - 2019-08-31 17:00:33]

来自 Linux
2019-8-16 16:09:22
张静茹(作者)
1楼

visual studio Linux 开发

新建工程 linux c 工程

添加 远程shh

在开发板中安装 g++ 编译环境

apt install g++


至此vs 可以远程生成了


开始调试

---------------------------

Microsoft Visual Studio

---------------------------

无法启动 gdb。系统中缺少 gdb,需进行安装,请使用系统的包管理器进行安装。


apt install  gdb 



开始调试 产生

Segmentation fault 


项目->属性->配置类型->改为"应用程序"



shows "Loading symbols for module /lib/ld-linux-armhf.so.3" and never finishes loading 

解决方法:

Run "sudo apt-get install gdbserver" and change Debugging Mode to "gdbserver" in Visual Studio. You can find the Debugging Mode setting in Right Click on Project > Properties > Debugging

只需要 改Debugging Mode to "gdbserver 即可

https://stackoverflow.com/questions/48394945/remote-debugging-on-raspberry




至此 VS 可以正常调试了









[修改于 1 个月前 - 2019-08-16 16:59:45]

折叠评论
加载评论中,请稍候...
折叠评论
2019-8-21 14:34:47
2019-8-21 14:34:47
张静茹(作者)
2楼

VisualGDB 编译调试QT

折叠评论
加载评论中,请稍候...
折叠评论
2019-8-22 09:36:07
张静茹(作者)
3楼

 apt-get install qtbase5-dev qt5-default libqt5gui5 libqt5network5 libqt5printsupport5 libqt5widgets5 libqt5opengl5-dev libproxy1v5 libdevmapper1.02.1 watershed


arm开发板安装 qt开发环境


两个开发板的问题不一样,第二张3399开发板依然安装失败


最后好像是挂代理安装好的


只需要 apt-get install qtbase5-dev




2019-09-08 

apt-get install qtbase5-dev qt5-default libqt5gui5 libqt5network5 libqt5printsupport5 libqt5widgets5 libqt5opengl5-dev libproxy1v5 libdevmapper1.02.1 watershed  libgles2-mesa-dev libegl1-mesa-dev qtbase5-dev-tools update-inetd libmirclient-dev libmircommon-dev libprotobuf-dev libprotobuf9v5


才安装成功


apt-get install qtbase5-dev 5.9 

可以指定版本




 又出现了 下面的问题

[修改于 9 天前 - 2019-09-08 17:40:38]

折叠评论
加载评论中,请稍候...
折叠评论
2019-8-24 18:37:02
2019-8-24 18:37:02
4楼

茄子nb

折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
5楼

root@firefly:~# apt-get install gdb

Reading package lists... Done

Building dependency tree       

Reading state information... Done

You might want to run 'apt --fix-broken install' to correct these.

The following packages have unmet dependencies:

 gdb : Depends: libbabeltrace1 (>= 1.2.1) but it is not going to be installed

       Recommends: libc-dbg

       Recommends: gdbserver but it is not going to be installed

 libgl1-mesa-dev : Depends: mesa-common-dev (= 19.0.8-0ubuntu0~18.04.1) but 18.2.8-0ubuntu0~18.04.2 is to be installed

                   Depends: libglvnd-dev but it is not going to be installed

E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

root@firefly:~# apt --fix-broken install

Reading package lists... Done

Building dependency tree       

Reading state information... Done

Correcting dependencies... Done

The following additional packages will be installed:

  libglvnd-dev mesa-common-dev

The following NEW packages will be installed:

  libglvnd-dev

The following packages will be upgraded:

  mesa-common-dev

1 upgraded, 1 newly installed, 0 to remove and 191 not upgraded.

36 not fully installed or removed.

Need to get 0 B/606 kB of archives.

After this operation, 279 kB of additional disk space will be used.

Do you want to continue? [Y/n] Y

(Reading database ... 106038 files and directories currently installed.)

Preparing to unpack .../mesa-common-dev_19.0.8-0ubuntu0~18.04.1_arm64.deb ...

Unpacking mesa-common-dev:arm64 (19.0.8-0ubuntu0~18.04.1) over (18.2.8-0ubuntu0~18.04.2) ...

dpkg: error processing archive /var/cache/apt/archives/mesa-common-dev_19.0.8-0ubuntu0~18.04.1_arm64.deb (--unpack):

 trying to overwrite '/usr/include/KHR/khrplatform.h', which is also in package libmali-rk-dev:arm64 1.6-1

dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)

Preparing to unpack .../libglvnd-dev_1.0.0-2ubuntu2.3_arm64.deb ...

Unpacking libglvnd-dev:arm64 (1.0.0-2ubuntu2.3) ...

dpkg: error processing archive /var/cache/apt/archives/libglvnd-dev_1.0.0-2ubuntu2.3_arm64.deb (--unpack):

 trying to overwrite '/usr/lib/aarch64-linux-gnu/libEGL.so', which is also in package rockchip-mali-midgard14 1.6-1

Errors were encountered while processing:

 /var/cache/apt/archives/mesa-common-dev_19.0.8-0ubuntu0~18.04.1_arm64.deb

 /var/cache/apt/archives/libglvnd-dev_1.0.0-2ubuntu2.3_arm64.deb

E: Sub-process /usr/bin/dpkg returned an error code (1)

root@firefly:~# 





dpkg: error processing archive /var/cache/apt/archives/mesa-common-dev_19.0.8-0ubuntu0~18.04.1_arm64.deb (--unpack):

 trying to overwrite '/usr/include/KHR/khrplatform.h', which is also in package libmali-rk-dev:arm64 1.6-1

dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)

You might want to run 'apt --fix-broken install' to correct these.

解决方法 

删除 /var/lib/dpkg/info 内的所有文件 重新执行apt --fix-broken install

折叠评论
加载评论中,请稍候...
折叠评论
2019-8-25 13:06:35
张静茹(作者)
6楼

VisualGDB 创建的Qt工程 好像默认不支持Qml QT Quike

QQmlApplicationEngine 头文件找不到

Arm Linux 中找不到这个头文件


编辑D:\Project\QT\LinuxProject1\LinuxProject1\LinuxProject1.pro

QT       += core gui 

改为 

QT       += quick

报错 Unknown module(s) in QT: quick


解决方法

https://blog.csdn.net/hhhlizhao/article/details/73604445

apt-get install qtdeclarative5-dev

https://packages.debian.org/buster/qtdeclarative5-dev

https://packages.debian.org/buster/libqt5qml5

[修改于 23 天前 - 2019-08-25 13:50:48]

折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
7楼

undefined reference to `QQmlApplicationEngine::QQmlApplicationEngine(QObject*)' LinuxProject1 D:\Project\QT\LinuxProject1\LinuxProject1\LinuxProject1.cpp 10

undefined reference to `QQmlApplicationEngine::objectCreated(QObject*, QUrl const&)' LinuxProject1 D:\Project\QT\LinuxProject1\LinuxProject1\LinuxProject1.cpp 12

undefined reference to `QQmlApplicationEngine::objectCreated(QObject*, QUrl const&)' LinuxProject1 D:\Project\QT\LinuxProject1\LinuxProject1\LinuxProject1.cpp 12

undefined reference to `QQmlApplicationEngine::load(QUrl const&)' LinuxProject1 D:\Project\QT\LinuxProject1\LinuxProject1\LinuxProject1.cpp 20

undefined reference to `QQmlApplicationEngine::~QQmlApplicationEngine()' LinuxProject1 D:\Project\QT\LinuxProject1\LinuxProject1\LinuxProject1.cpp 10

undefined reference to `QQmlApplicationEngine::~QQmlApplicationEngine()' LinuxProject1 D:\Project\QT\LinuxProject1\LinuxProject1\LinuxProject1.cpp 10

undefined reference to `QQmlApplicationEngine::staticMetaObject' LinuxProject1 C:\Users\Game\AppData\Local\VisualGDB\RemoteSourceCache\192.168.1.104\0000\include\aarch64-linux-gnu\qt5\QtCore\qobject.h 339

undefined reference to `QQmlApplicationEngine::staticMetaObject' LinuxProject1 C:\Users\Game\AppData\Local\VisualGDB\RemoteSourceCache\192.168.1.104\0000\include\aarch64-linux-gnu\qt5\QtCore\qobject.h 339

ld returned 1 exit status LinuxProject1 D:\Project\QT\LinuxProject1\LinuxProject1\collect2 1

Command-line action failed LinuxProject1 D:\Project\QT\LinuxProject1\LinuxProject1\VisualGDB 1




原因 没有在pro文件指定 QT+=quick 找不到 lib 文件 

[修改于 19 天前 - 2019-08-30 09:11:18]

折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
8楼

root@firefly:/tmp/VisualGDB/d/Project/QT/LinuxProject1/LinuxProject1/Debug# ./LinuxProject1 

QQmlApplicationEngine failed to load component

qrc:/main.qml:1 module "QtQuick" is not installed

qrc:/main.qml:2 module "QtQuick.Window" is not installed

qrc:/main.qml:1 module "QtQuick" is not installed

qrc:/main.qml:2 module "QtQuick.Window" is not installed



https://askubuntu.com/questions/322356/qtquick-not-found-lubuntu

apt-get qtdeclarative5-qtquick2-plugin





[修改于 23 天前 - 2019-08-25 23:29:02]

折叠评论
加载评论中,请稍候...
折叠评论
2019-8-31 16:59:31
2019-8-31 16:59:31
张静茹(作者)
9楼

variable `xxx' has initializer but incomplete type

出现这个错误字面意思是变量xxx定义了,但是不完整,

解决方法是,没有找到xxx变量的头文件,包含头文件即可解决

https://blog.csdn.net/weixin_42445727/article/details/82594215

折叠评论
加载评论中,请稍候...
折叠评论
2019-9-1 16:07:28
张静茹(作者)
10楼

//Using QQmlComponent

//QQmlEngine engine;

//QQmlComponent component(&engine,

// QUrl::fromLocalFile("main.qml"));

//QObject *object = component.create();

// delete object;

//qml 根对象 Window



QQuickView view(QUrl::fromLocalFile("main.qml"));

view.show();

QObject *object = view.rootObject();

//object = view.rootContext();

//qml 根对象 Rectangle 或 Item


       //auto test_txt1 = object->findChild<QObject*>("test_text1");

//test_txt1->setProperty("text", "00000000");



 object->findChild<QObject*>("test_text1"); 返回null

解决方法 qml 中的 控件名要使用 objectName 而不是 id 

Text {

        objectName:"test_text1" // 注意 必须使用 ""

        id: element

        x: 292

        y: 271

        text: qsTr("Text")

        font.pixelSize: 28

    }






折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
11楼

QQuickView view(QUrl::fromLocalFile("main.qml"));

view.show();

QObject *object = view.rootObject();




 view.rootObject(); 返回null

QQuickView qml 根对象 Rectangle 或 Item

折叠评论
加载评论中,请稍候...
折叠评论
2019-9-10 10:42:30
2019-9-10 10:42:30
张静茹(作者)
12楼

使用sd卡的 开发板 烧写镜像后 系统剩余空间 16G的sd卡仅有几百兆 剩余空间

使用 fdisk /dev/mmcblk0 为sd卡 重新分区


root@Ubuntu-mate:~#  fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.25.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.


Command (m for help): p

Disk /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x00098996


Device         Boot  Start      End  Sectors  Size Id Type

/dev/mmcblk0p1        2048   133119   131072   64M 83 Linux

/dev/mmcblk0p2      133120 30000000 29866881 14.2G 83 Linux


输入d 2 删除第二个分区

输入n p 新建主分区 注意 要留个几百兆不要使用 sd卡可能会损坏 做镜像烧新卡的话镜像太慢 有可能 新卡写不进去

输入分区大小

w存盘 reboot重启

启动后 resize2fs  /dev/mmcblk0p2

reboot 再重启一下

[修改于 7 天前 - 2019-09-10 12:56:16]

折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
13楼

这楼的 方法是错误的 删掉了

[修改于 4 天前 - 2019-09-13 20:34:23]

折叠评论
加载评论中,请稍候...
折叠评论
2019-9-11 13:28:12
张静茹(作者)
14楼

需要安装的软件一览

gdb g++ make proxychina 

折叠评论
加载评论中,请稍候...
折叠评论
2019-9-13 15:23:44
2019-9-13 15:23:44
张静茹(作者)
15楼

> main.cpp:8:19: fatal error: variant: No such file or directory

> compilation terminated.

> Makefile:167: recipe for target 'main.o' failed

> make: *** [main.o] Error 1


安装g ++ - 7; 例如,如果ubuntu

sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y 

sudo apt-get update 

sudo apt-get install g++-7




add-apt-repository: command not found

解决方法

apt-get install software-properties-common python-software-properties



折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
16楼

qt 源码 build 方法

./configure -prefix /usr/local/Trolltech/Qt-5.12.4-arm/ -release -opensource -make libs -xplatform linux-g++-32 -optimized-qmake -pch -qt-libjpeg -qt-zlib -no-opengl -skip qt3d -skip qtcanvas3d -skip qtpurchasing -no-sse2 -no-openssl -no-cups -no-glib -no-iconv -nomake examples -nomake tools -skip qtvirtualkeyboard


实际测试:

./configure -prefix /usr/local/Trolltech/Qt-5.12.4-arm/ -opensource -no-opengl 

qpaintervideosurface.cpp:67:12: error: invalid use of incomplete type 'class QGLContext'

     context->makeCurrent();




./configure -prefix /usr/local/Trolltech/Qt-5.12.4-arm/ -release -opensource -platform linux-g++ -make libs -optimized-qmake -pch -qt-libjpeg -qt-zlib -skip qt3d -skip qtcanvas3d -skip qtpurchasing -no-sse2 -no-openssl -no-cups -no-glib -no-iconv -nomake examples -nomake tools -skip qtvirtualkeyboard

去掉 -opengl 指定 -platform linux-g++



./configure -prefix /usr/local/Trolltech/Qt-5.12.4-arm/ -release -opensource -platform linux-g++ 




 The OpenGL functionality tests failed!

解决方法 apt-get install libgl1-mesa-dev libglu1-mesa-dev 

注意 安装完以后 删除全部qt源码重新解压 后 错误才会消失





[修改于 15 小时前 - 2019-09-17 09:29:48]

折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
17楼
在编译Qt程序时出现如下报错
Qt error: one or more PCH files were found, but they were invalid

这是因为之前编译过程序,留下一些配置文件导致无法编译,清除之前的编译残留就行了
make distclean


折叠评论
加载评论中,请稍候...
折叠评论
张静茹(作者)
18楼

qt 编译安卓的时候  产生

Command does not exist: C:\Microsoft\AndroidNDK64\android-ndk-r16b/toolchains/llvm/prebuilt/windows-x86_64/bin/llvm-strip.exe


更新 ndk 版本就好了

android-ndk-r16b 更新到 android-ndk-r20

折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png