Ubuntu(arm64)设备上安装chromium浏览器

一、下载软件包(2种方式)
1、windows 下载,然后上传到Linux上
访问 http://ports.ubuntu.com/pool/universe/c/chromium-browser/
分别下载以下四个包
chromium-codecs-ffmpeg-extra_112.0.5615.49-0ubuntu0.18.04.1_arm64.deb
chromium-browser_112.0.5615.49-0ubuntu0.18.04.1_arm64.deb
chromium-chromedriver_112.0.5615.49-0ubuntu0.18.04.1_arm64.deb
chromium-browser-l10n_112.0.5615.49-0ubuntu0.18.04.1_all.deb
2、Linux下载

wget http://ports.ubuntu.com/pool/universe/c/chromium-browser/chromium-codecs-ffmpeg-extra_112.0.5615.49-0ubuntu0.18.04.1_arm64.deb wget http://ports.ubuntu.com/pool/universe/c/chromium-browser/chromium-browser_112.0.5615.49-0ubuntu0.18.04.1_arm64.deb wget http://ports.ubuntu.com/pool/universe/c/chromium-browser/chromium-chromedriver_112.0.5615.49-0ubuntu0.18.04.1_arm64.deb wget http://ports.ubuntu.com/pool/universe/c/chromium-browser/chromium-browser-l10n_112.0.5615.49-0ubuntu0.18.04.1_all.deb 

二、安装软件包
在ubuntu上执行以下命令

dpkg -i chromium-codecs-ffmpeg-extra_112.0.5615.49-0ubuntu0.18.04.1_arm64.deb dpkg -i chromium-browser_112.0.5615.49-0ubuntu0.18.04.1_arm64.deb dpkg -i chromium-chromedriver_112.0.5615.49-0ubuntu0.18.04.1_arm64.deb dpkg -i chromium-browser-l10n_112.0.5615.49-0ubuntu0.18.04.1_all.deb 

三、启动浏览器
1、带桌面的ubuntu系统可直接双击chromium图标打开
2、命令行启动:chromium-browser

四、如果遇到浏览器打开失败的情况(双击后没有弹出浏览器页面)
1、通过命令行启动查看日志 chromium-browser
2、假如错误是

[1250053:1250053:0416/171330.177265:ERROR:zygote_host_impl_linux.cc(100)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180. 

3、临时解决方案是:
命令行启动改为:chromium-browser --no-sandbox

4、永久解决方案:
查找图标对应的.desktop文件

root@testuser:/# find ~/.local/share/applications/ /usr/share/applications/ -name "*chromium*" /usr/share/applications/chromium-browser.desktop 

修改文件 /usr/share/applications/chromium-browser.desktop
文件内搜索 Exec=chromium-browser
我搜到了四处:

Exec=chromium-browser %U 改=> Exec=chromium-browser --no-sandbox %U Exec=chromium-browser 改=> Exec=chromium-browser --no-sandbox Exec=chromium-browser --incognito 改=> Exec=chromium-browser --incognito --no-sandbox Exec=chromium-browser --temp-profile 改=> Exec=chromium-browser --temp-profile --no-sandbox 

重启设备后生效。

Read more

C++ 函数与成员函数声明机制的深度剖析与演进全景报告

C++ 函数与成员函数声明机制的深度剖析与演进全景报告 1. 核心综述:声明作为接口契约的基石 在 C++ 编程语言的庞大语义体系中,函数声明(Function Declaration)不仅是连接调用方与实现方的接口契约,更是编译器执行类型检查、重载决议(Overload Resolution)、符号链接(Linkage)以及代码生成的核心依据。与 C 语言相比,C++ 的函数声明引入了极其复杂的修饰符系统、模板推导机制、面向对象的成员语义以及现代 C++(C++11 至 C++23)所带来的编译期计算特性。这一演变过程将函数声明从简单的“代码跳转地址标签”提升为一种描述计算行为、约束条件和类型关系的元数据集合。 函数声明本质上引入了一个标识符(Identifier),该标识符指定了一个函数实体,并可选地指定其参数类型列表(即原型,Prototype)。值得注意的是,声明与定义(Definition)在 C++ 中有着严格的区分:声明仅引入名称和类型,

By Ne0inhk
C++(二)类和对象上篇

C++(二)类和对象上篇

1. 类与对象的概念 C语言是面向过程(功能)的语言,注重解决问题的过程、步骤;C++是面向对象的语言,注重对象之间的关系及其交互,面向对象是比面向功能更高级的开发方式,像所熟知的Java,C#,python都是面向对象的语言;其实C++最早的别名是C with classes,主要做的改进就是加入类(class)和对象(object),将现实世界类和对象映射到虚拟计算机系统,比如我们在等待外卖的时候,可以看到地图上的骑手距我们还有多远,骑手是一类对象,用户是一类对象,一个类可以实例化出很多对象,注重对象之间的关系,如下图所示。 其实类的思想是封装,我们来看一下为什么要提出封装的概念;如下图所示,在C语言中变量和函数是分离的,我们提供了接口供使用者调用,但是对于取栈顶元素这个函数,有的人可能感觉就一句代码我直接就写了,还调什么函数啊,然后就出现了下面的代码,因为不知道top究竟是指向栈顶元素还是栈顶元素的下一个位置,不知道底层实现,在这里乱用,很危险。 intmain(){ ST st;STInit(&st);int

By Ne0inhk
从构造到操作:全面掌握 C++ std::vector 的接口使用

从构造到操作:全面掌握 C++ std::vector 的接口使用

一、vector的接口 vector是一个类模板,这也就意味着可以存储各种类型。vector底层是一个数组,一个顺序容器。 接下来就看看vector的接口。 1. 构造函数 //用n个val构造vector对象explicitvector(size_type n,const value_type& val =value_type(),const allocator_type& alloc =allocator_type());//用一段迭代器区间构造vector对象template<classInputIterator>vector(InputIterator first, InputIterator last,const allocator_type& alloc =allocator_type());//拷贝构造vector(const vector& x); 2. 赋值运算符重载

By Ne0inhk
【C++】如何快速实现一棵支持key或key-value的二叉搜索树?关键技巧一文掌握!

【C++】如何快速实现一棵支持key或key-value的二叉搜索树?关键技巧一文掌握!

🎬 个人主页:MSTcheng · ZEEKLOG 🌱 代码仓库 :MSTcheng · Gitee 🔥 精选专栏: 《C语言》 《数据结构》 《C++由浅入深》 💬座右铭:路虽远行则将至,事虽难做则必成! 前言:在前面的文章中我们向大家介绍了一些序列式容器,比如:basic_string、vector、deque、list等。而本篇文章我们将要进入树形容器——二叉搜索树的学习。 文章目录 * 一、二叉搜索树的认识 * 1.1二叉搜索树的概念 * 1.2二叉搜索树的性能分析 * 二、二叉搜索树的实现 * 2.1二叉搜索树的整体框架 * 2.2二叉搜索树的插入 * 2.3二叉搜索树的查找 * 2.4二叉树的删除 * 三、二叉搜索树key和value的使用场景 * 四、总结 一、二叉搜索树的认识 1.1二叉搜索树的概念 二叉搜索树(

By Ne0inhk