工作日志day02
1.云计算? 相关职位
开源软件和linux起源:
- 自由软件之父:理查德.斯托曼
- linux之父:林纳斯.本纳第克特.托瓦兹
linux发行版
- RHEL:Red Hat Enterprise Linux 红帽linux商业公司
- CentOS:Community Enterprise Operating System 社区企业操作系统 免费的商业软件
- Ubuntu:桌面应用为主的开源GUN/Linux操作系统
- Debian
RHCE:红帽认证工程书
- RHCSA:红帽认证系统管理员
- RHCE:红帽认证工程师
- RHCA:红帽认证架构师
服务器分类:
- 塔式服务器
- 机架式服务器
- 刀片服务器
VMware-真机服务器
启动分区 交换分区 系统分区
处理Centos7/8系统输入用户名密码后界面卡住故障记录:设置用户名有限制
注销设置的用户-以超级管理员root登录
设置网卡-网络连接
XShell链接虚拟机
一次性创建多个文件touch file{yufeng,a,c}
拍摄快照
文件管理
cd /到根目录
bin:普通用户使用,二进制 boot:启动 dev:硬件 etc:设备文件 home:用户主目录 root:root用户的HOME run:临时 sbin:特权
tmp:临时 usr:应用程序 var:日志,邮件
文件类型
- 普通文件(文本文件,二进制文件,压缩文件,电影,图片)
d 目录文件(蓝色)
命令 选项 参数 ls / ls -l /
ctrl+l清屏
yum install tree
touch 路径和名字
mkdir -p 路径文件 :连续创建
cp 源文件路径 目标文件 :复制
table键补齐目录 两次tab键列出所有
cp -r 源文件 目标文件 :是否将源文件夹下的所有都拷贝
cd ~:进入根目录下的root文件夹
为什么用Cmake?(跨平台)
- CMakeLists.txt
- 普通用户,cd ~ 相当于cd /home/当前用户名
- cd - 返回进入此目录之前所在目录
- c++ main.cpp 编译,查看错误
- vim main.cpp创建并编辑
- ./a.out运行
- vim CMakeLists.txt
PROJECT(HELLO) SET(SRC_LIST main.cpp) MESSAGE(STATUS "This is BINARY dir" ${HELLO_BINARY_DIR}) MESSAGE(STATUS "This is SOURCE dir" ${HELLO_SOURCE_DIR}) ADD_EXECUTABLE(hello ${SRC_LIST}) ~- cmake .生成Makefile文件
- make编译
- ./hello可执行文件
- rm -rf 文件名
- unzip解压文件
- cmake ../PIX2FACE_SRC_DIR
语法:
PROJECT关键字可以用来指定工程的名字和支持的语言,默认支持所有语言
PROJECT(HELLO)指定了工程的名字,并且支持所有语言建议
PROJECT(HELLO CXX)指定了工程的名字,并且支持语言是C++
PROJECT(HELLO C CXX)指定了工程的名字,并且支持语言是c和c++
该指定隐式定义了两个CMAKE变量
<projectname>_BINARY_DIR,本例中是HELLO_BINARY_DIR
<projectname>_SOURCE_DIR,本例中是HELLO_SOURCE_DIR
MESSAGE关键字就可以直接使用两个变量
SET关键字
用来显示的指定变量的
SET(SRC_LIST main.cpp)SRC_LIST变量就包含了main.cpp
MESSAGE关键字
向终端输出用户自定义的信息
主要包含三种信息:
- SEND_ERROR,产生错误,生成过程被跳过
- STATUS,输出前缀为-的信息
- FALTAL_ERROR,立即终止所有cmake过程
ADD_EXECUTABLE关键字
生成可执行文件
ADD_EXECUTABLE(hello ${SRC_LIST}) 生成的可执行文件是hello,源文件读取变量SRC_LIST中的内容也可以直接写ADD_EXECUTABLE(hello main.cpp)
内部构建和外部构建
- 上述例子使用的内部构建,他生成的临时文件特别多,不方便清理
- 外部构建,就会把生成的文件放在build目录下,不会对原文件有任何影响
cmake ..
让Hello World看起来更像一个工程
- 为工程添加一个子目录src,用来放置工程源代码
- 添加一个子目录doc,用来放置这个工程的文档hello.txt
- 在工程目录添加文本文件 COPYRIGHT,README
- 在工程目录添加一个runhello.sh脚本,用来调用hello二进制
- 将构建后的目标文件放入构建目录的bin子目录
- 将doc目录的内容以及COPYRIGHT/README安装到、usr/share/doc/cmake/
echo "">CMakeLists.txt:清除文件内容
cat CMakeLists.txt:查看文件内容
安装:
- 一种是从代码编译后直接make install安装
- 一种是打包时的指定目录安装
简单的可以这样指定目录:make install DESTDIR=/tmp/test
稍微复杂一点的可以这样指定:./configure-prefix=/usr
如何安装HelloWorld
使用CMAKE一个新的指令:INSTALL
INSTALL的安装可以包括:二进制,动态库,静态库以及文件,目录,脚本等
使用CMAKE一个新的变量:CMAKE_INSTALL_PREFIX
project(hello) add_subdirectory(src bin) install(FILES COPYRIGHT README DESTINATION share/doc/cmake/) install(PROGRAMS runhello.sh DESTINATION bin) install(DIRECTORY doc/ DESTINATION share/doc/cmake/)FILES:文件
DESTINATION:
- 写绝对路径
- 可以写相对路径,相对路径的实际路径是:${CMAKE_INSTALL_PREFIX}/<DESTINATION 定义路径>
CMAKE_INSTALL_PREFIX 默认实在 /usr/local/
cmake-DCMAKE_INSTALL_PREFIX=/usr 在cmake的时候指定CMAKE_INSTALL_PREFIX的路径
静态库和动态库的构建
任务:
- 建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,hellofunc向终端输出Hello World字符串
- 安装头文件和共享库
静态库和动态库的区别
- 静态库的扩展名一般为”.a“或”.lib“动态库的扩展名一般为”.so“或”.dll“
- 静态库在编译时会直接整合到目标程序中,编译成功的可执行文件可独立运行
- 动态库在编译时不会放到连接的目标程序中,即可执行文件无法单独运行
构建实力:
project(hello) add_subdirectory(lib bin)lib下
SET(LIBHELLO_SRC hello.cpp) ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})
ADD_LIBRARY
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})
hello :就是正常的库名,生成的名字前面会加上lib,最终产生的文件是libhello.so
SHARED,动态库 STATIC,静态库
${...} 源文件
相关文章:
工作日志day02
1.云计算? 相关职位 开源软件和linux起源: 自由软件之父:理查德.斯托曼linux之父:林纳斯.本纳第克特.托瓦兹linux发行版 RHEL:Red Hat Enterprise Linux 红帽linux商业公司CentOS:Community Enterprise Operating Sys…...
C++Primer16.1.6节练习
练习16.28: 简易的shared_ptr代码如下 #include <iostream> #include <vector> #include <list> using namespace std;//shared_ptr模板 template<typename T>class SharedPtr {friend SharedPtr<T>& MakeShared(T* t); public…...
初尝并行编程
进程被分为后台进程和应用进程 大部分后台进程在系统开始运行时被操作系统启动,完成操作系统的基础服务功能。大部分应用进程由用户启动,完成用户所需的具体应用功能 进程由程序段、数据段、进程控制块三部分组成 程序段也被称为是代码段,…...
keepalived学习记录:对其vip漂移过程采用gdb跟踪
对其vip漂移过程采用gdb跟踪keepalived工具主要功能产生vip漂移过程两种情况gdb调试常用命令gdb调试时打到的函数栈(供学习参考)函数栈的图是本人理解下画的,不对请多指正 keepalived主要有三个进程,父进程是core进程,…...
51单片机串口通讯原理及程序源码-----day8
51单片机串口通讯原理及程序源码-----day8 1.定义单片机为TTL电平:高 5V 低 0V RS232电平: 计算机的串口高 -12V 低12V 所以计算机与单片机之间通讯时需要加电平转换芯片CH340T 、 MAX232。 2.通信分类: (1)并行通信通…...
mongodb入门到使用(下)
mongodb中常用命令操作一、用户操作二、创建用户三、数据库操作基本操作四、扩展操作五、集合操作一、用户操作 在mongo中使用mongodb都需要在admin数据库中操作。然后在使用下面的命令 use admin二、创建用户 db.createUser({"user":"imooc", #用户名&q…...
云HIS系统源码 医院his源码 云his源码
大型医院his系统源码 SaaS运维平台多医院入驻强大的电子病历完整文档 ,有演示 一、系统概述: 基层卫生健康云是一款满足基层医疗机构各类业务需要的健康云产品。该产品能帮助基层医疗机构完成日常各类业务,提供病患挂号支持、病患问诊、电子…...
朴素贝叶斯法学习笔记
频率派和贝叶斯派 频率派认为可以通过大量实验,从样本推断总体。比如假定总体服从均值为μ\muμ,方差为σ\sigmaσ的分布。根据中心极限定理,是可以通过抽样估算总体的参数的,而且抽样次数越多,对总体的估计就越准确。…...
vscode与C++安装与使用【不好用来骂我】
网上教程很多,但是都不太好用,这是我垃圾堆里淘金淘出来的教程: 安装软件 安装 Visual Studio Code: 你需要下载并安装 Visual Studio Code,可以在官网下载 https://code.visualstudio.com/download。 安装 C 扩展: 在 Visual S…...
C++11使用多线程(线程池)计算相似度实现性能优化
需求:图像识别中,注册的样本多了会影响计算速度,成为性能瓶颈,其中一个优化方法就是使用多线程。例如,注册了了3000个特征,每个特征4096个float。可以把3000个特征比对放到4个线程中进行计算,然…...
【测绘程序设计】——平面坐标转换
测绘工程中经常遇到平面坐标转换——比如,北京54(或西安80)平面坐标转换成CGCS2000平面坐标、工程独立坐标系平面坐标转换成CGCS2000平面坐标等,常用转换模型包括:①三参数法(2平移+1旋转);②四参数法(赫尔默特法,2平移+1旋转+1尺度);③六参数法(仿射变换法,2平移…...
五子棋的设计与实现
术:Java等摘要:五子棋是一种两人对弈的纯策略型棋类游戏,非常容易上手,老少皆宜。为了更好的推广五子棋,研究简单的人工智能方式,运用Java开发五子棋游戏。主要包含了人机对战,棋盘初始化&#…...
大数据项目软硬件选择
目录 一.技术选型 二.系统数据流程设计 三.框架版本选型 如何选择Apache/CDH/HDP版本...
redis数据结构的适用场景分析
1、String 类型的内存空间消耗问题,以及选择节省内存开销的数据类型的解决方案。 为什么 String 类型内存开销大? 图片 ID 和图片存储对象 ID 都是 10 位数,我们可以用两个 8 字节的 Long 类型表示这两个 ID。因为 8 字节的 Long 类型最大可以…...
同步、异步、全双工、半双工的区别
1、通讯 1.1 并行通讯 定义:一条信息的各位数据被同时传送的通讯方式称为并行通讯; 特点: 各个数据位同时发送,传送速度快、效率高,但有多少数据位就需要多少根数据线,因此传送成本高,并且只…...
ClickHouse 与 Amazon S3 结合?一起来探索其中奥秘
目录ClickHouse 简介ClickHouse 与对象存储ClickHouse 与 S3 结合的三种方法示例参考架构小结参考资料ClickHouse 简介ClickHouse 是一种快速的、开源的、用于联机分析(OLAP)的列式数据库管理系统(DBMS),由俄罗斯的Yan…...
【Spark分布式内存计算框架——Structured Streaming】1. Structured Streaming 概述
前言 Apache Spark在2016年的时候启动了Structured Streaming项目,一个基于Spark SQL的全新流计算引擎Structured Streaming,让用户像编写批处理程序一样简单地编写高性能的流处理程序。 Structured Streaming并不是对Spark Streaming的简单改进…...
【Windows】【Linux】---- Java证书导入
问题: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 无法找到请求目标的有效证书路径 一、Windows—java证书导入 1、下载证书到本地(以下…...
【Linux学习】菜鸟入门——gcc与g++简要使用
一、gcc/g gcc/g是编译器,gcc是GCC(GUN Compiler Collection,GUN编译器集合)中的C编译器;g是GCC中的C编译器。使用g编译文件时会自动链接STL标准库,而gcc不会自动链接STL标准库。下面简单介绍一下Linux环境下(Windows差…...
Cadence Allegro 导出Bill of Material Report详解
⏪《上一篇》 🏡《总目录》 ⏩《下一篇》 目录 1,概述2,Assigned Functions Report作用3,Assigned Functions Report示例4,Assigned Functions Report导出方法4.1,方法14.2,方法2B站关注“硬小二”浏览更多演示视频...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...




