针对c/c++ 招聘的面试试题
问答1. 静态函数作用 一 是隐藏功能,对于static修饰的函数和全局变量而言 二 是保持持久性功能,对于static修饰的局部变量而言
2. ++a和a++的区别是什么? 加加a的意思是先加后取值。 A加加的意思是先取值后增加。
3. 什么是指针的指针? 指针的指针是指一个指向指针所在地址的指针。 int a=5, *x=&a, **y=&x;
4. 使用头文件时双引号和尖括号的区别是什么? 使用双引号时,首先要在当前工作目录中查找这个头文件,如果找不到的话就会在内置的include path里面找。 使用尖括号时,只会在当前工作目录中查找这个头文件。
5. 什么时候应该在C程序中使用指针? 1.获取变量的地址 2.为了在C中实现引用传递:指针允许不同的函数共享和修改其局部变量。 3.通过大型结构,以便避免完整复制结构。 4.实现“链接”数据结构,例如链接列表和二进制树。
6. 什么是内存泄漏?为何应避免使用它。开发过程中是否涉及辅助工具检测。 程序员在堆中创建内存而忘记删除它时,就会发生内存泄漏。对于诸如守护程序 ...
qemu/kvm 源码分析与应用 第三节
本节主要介绍libvirtd源码安装
libvirtd 源码安装
操作系统版本为ubuntu 22.04
安装依赖1sudo apt-get install git build-essential libssl-dev pkg-config libncurses-dev flex bison libelf-dev libpciaccess-dev xsltproc libyajl-dev python3-docutils -y
下载源码从 https://libvirt.org/sources/ 下载新版本的 Libvirt 源码。
1curl -# -O https://download.libvirt.org/libvirt-9.6.0.tar.xz -o libvirt-9.6.0.tar.xz
编译Libvirt 工具12345tar -xf libvirt-9.6.0.tar.xz cd libvirt-9.6.0 meson build -Dsystem=true -Ddriver_qemu=enabled -Ddriver_libvirtd= ...
qemu/kvm 源码分析与应用 第二节 qemu 安装
本节主要qemu-kvm的安装
qemu 源码安装
操作系统版本为ubuntu 20.04
安装依赖1sudo apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev virtualenv libtool liblog4cpp5-dev libavcodec-dev libssl-dev libglu1-mesa-dev libasound2-dev libfreetype6-dev libfontconfig1-dev libogg-dev libxrandr-dev libgcrypt20-dev libsdl1.2-dev libsasl2-dev libnss3-dev libpixman-1-dev libxfixes-dev libjpeg8-dev libiscsi-dev libusbredirparser-dev libusb ...
qemu/kvm 源码分析与应用 第一节
本节主要介绍kvm源码安装,以及qemu-kvm的安装
kvm 源码安装
操作系统版本为ubuntu 22.04
安装依赖1sudo apt-get install git build-essential libssl-dev pkg-config libncurses-dev flex bison libelf-dev
下载源码源码的下载使用中国科技大学的镜像站点下载linux内核源码
1git clone https://mirrors.tuna.tsinghua.edu.cn/git/linux-stable.git -b linux-6.4.y
编译内核kvm模块123456cd linux-stable cp /boot/config-$(uname -r) .config make menuconfig make -j $(nproc) sudo make modules_install sudo make install #安装kernel
或者
12345678cd linux-stablecp /boot/co ...
linux 设置clang 为默认编译器
安装clangclang 安装方式 官网提供一下两种安装方式,及默认安装和自动脚本安装。两种安装方式本质上并没有什么不同。
默认仓库安装shell 自动化方式安装1apt-get install clang-format clang-tidy clang-tools clang clang libc++-dev libc++1 libc++abi-dev libc++abi1 libclang-dev libclang1 liblldb-dev libllvm-ocaml-dev libomp-dev libomp5 lld lldb llvm-dev llvm-runtime llvm python3-clang
安装的版本版本为仓库默认版本,需要 添加以下源 来选择不同版本
123456789101112131415161718192021222324252627282930313233deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic maindeb-src http://apt.llvm.org/bionic/ ll ...
linux 下PaddleOCR c++ 环境的搭建以及编译
PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力开发者训练出更好的模型,并应用落地。本章节介绍PaddleOCR 模型的C++部署方法。C++在性能计算上优于Python,因此,在大多数CPU、GPU部署场景,多采用C++的部署方式,本节将介绍如何在Linux (CPU)环境下配置C++环境并完成PaddleOCR模型部署。
主要过程包括:
linux 下PaddleOCR c++ 环境的搭建以及编译
linux下 识别文字的项目
安装编译环境安装依赖编译环境1234apt-get install net-tools tar wget make build-essential git python3-dev;wget https://github.com/Kitware/CMake/releases/download/v3.22.5/cmake-3.22.5-linux-x86_64.sh;sh cmake-3.22.5-linux-x86_64.sh --prefix=/usr/local --exclude-subdir
安装cmake 之前需要先卸载低版 ...
vcpkg 设置景象代理
针对github release、archive以及项目文件的加速项目,和vcpkg 使用代理镜像镜像加速方式
github 镜像GitHub是目前全球最大的开源代码库之一。但是因为国内经常访问不了Github,或者访问速度慢,导致国内机器无法拉取项目部署,解决这些问题可以通以下国内镜像,来提高访问速度。
域名
是否有效
clone 加速
Raw
Releases
api
https://gitclone.com/
✔️
https://gitclone.com/github.com
https://gitclone.com/raw.githubusercontent.com/
https://gitclone.com/github.com
https://hub.fastgit.xyz/
x
https://hub.fastgit.xyz
https://raw.fastgit.org
https://hub.fastgit.xyz/
https://mirror.ghproxy.com
x
https://mirror.ghproxy.com/http ...
vscode/vs 配置 vcpkg 的c++ 开发环境
Vistual StudioVistual Studio 配置vcpkg的环境开发需要在勾选vcpkg 组件即可。
VS Code前提准备
VS Code
cmake
vcpkg
插件安装VS Code 需要安装一下插件
c/c++
cmake
cmake Tools
配置vcpkg在setting.json 文件中添加
123"cmake.configureSettings": { "CMAKE_TOOLCHAIN_FILE": "${VCPKG_ROOT}scripts/buildsystems/vcpkg.cmake" }
setting.json 为vscode 的配置文件,其存在项目、全局、和远程 三种配置,具体配置那种可按照自身意愿。
创建测试工程安装spdlog 库在项目目录下创建vcpkg.json文件,
12345678910111213{ "$schema": "https://ra ...
针对ubuntu 设置终端代理、全局代理
针对Ubuntu设置代理终端代理123export http_proxy=http://用户名:密码@代理地址:代理端口export https_proxy=http://用户名:密码@代理地址:代理端口export no_proxy='127.0.0.1, localhost, *.cnn.com, 192.168.1.10, domain.com:8080'
*.cnn.com 泛域名 但是测试好像没生效,
apt 代理编辑 /etc/apt/apt.conf.d/porxy.conf 文件添加以下
12Acquire::http::Proxy "http://proxy.xxx.com:8080";Acquire::https::Proxy "http://proxy.xxx.com:8080";
记一次butterfly 页脚 页头 的美化
butterfly页脚页头的美化1. 修改页头
在sources 下创建assets/css/head.styl 文件 添加以下代码 12345678910111213141516171819202122232425262728293031323334353637 @import 'nib'// 顶部图#page-header &, &:before background: transparent !important &.post-bg, &.not-home-page height: 280px !important #post-info bottom: 40px !important #page-site-info top: 140px !important @media screen and (max-width: 768px) &.not-home-page height: 200px !important #post-info b ...