工作日志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站关注“硬小二”浏览更多演示视频...
League-Toolkit:提升英雄联盟游戏体验的开源工具集
League-Toolkit:提升英雄联盟游戏体验的开源工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是基…...
RTX 4090D 24G镜像一文详解:PyTorch 2.8预装xFormers/FlashAttention-2实战
RTX 4090D 24G镜像一文详解:PyTorch 2.8预装xFormers/FlashAttention-2实战 1. 镜像概述与核心优势 PyTorch 2.8深度学习镜像为RTX 4090D 24GB显卡量身打造,经过CUDA 12.4深度优化,提供开箱即用的高性能计算环境。这个镜像特别适合需要处理…...
OpenClaw轻量化实践:nanobot镜像在树莓派上的部署指南
OpenClaw轻量化实践:nanobot镜像在树莓派上的部署指南 1. 为什么选择树莓派部署OpenClaw 去年夏天,我在整理家庭实验室时翻出了一台闲置的树莓派4B。这台曾经用来跑Home Assistant的小设备,现在有了新的使命——成为我的个人AI助手。当时市…...
海外项目实战:用uniapp+Google OAuth 2.0搞定H5/App的免后端登录(附完整源码)
海外项目实战:Uniapp与Google OAuth 2.0的无后端登录方案 在面向海外市场的移动应用开发中,用户登录体验直接影响产品的转化率和留存率。Google账号作为欧美地区最普及的数字身份凭证,其登录集成已成为出海应用的标配功能。本文将深入探讨如何…...
告别向日葵和TeamViewer!用你家路由器自带的DDNS功能,免费搭建Windows远程桌面(保姆级教程)
告别第三方远程工具:用路由器DDNS解锁Windows远程桌面全速体验 每次打开向日葵或TeamViewer时,那个转圈加载的进度条是否让你眉头紧锁?当免费版突然弹出"会话时长已达上限"的提示时,是否恨不得砸键盘?作为常…...
技术萨满祭典:给数据中心献祭机械硬盘
一、仪式的缘起:当测试工程师遇见数据之灵在数字文明的殿堂中,数据中心是承载万物之灵的圣地。而软件测试从业者,正是穿梭于代码与硬件之间的现代萨满。当机械硬盘(HDD)在SSD洪流中逐渐退居幕后,这场为老旧…...
2026年AI智能体大爆发:下一个十年风口,普通人的超级财富密码
比尔盖茨曾断言:“AI智能体(AI Agent)将彻底改变人们使用计算机的方式。”如果说2023年是大语言模型(LLM)的启蒙元年,那么到2026年,具备“感知-规划-行动”自主闭环能力的AI智能体将迎来真正的商…...
5分钟精通:开源内容解锁工具Bypass Paywalls Clean完全指南
5分钟精通:开源内容解锁工具Bypass Paywalls Clean完全指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的数字时代,学术文献、专业报道和深度分…...
【经验贴】运营岗考过CDA数据分析师一级经验分享
终于把CDA一级拿下了!查成绩那一刻真的挺开心的,不是多难,但全程自己一点点学出来,特别有成就感。今天就把我整个备考过程老老实实写出来,给正在准备的小伙伴一个参考。一、备考原因我最开始考CDA,完全是因…...
JavaWeb Listener 监听器详解:三大域对象监听 + 在线人数统计实战
前言Listener(监听器)是 JavaWeb 三大组件最后一个,专门用于监听 Web 域对象的创建、销毁、属性变化,在事件触发时自动执行逻辑。它是基于观察者模式实现,常用于:服务器初始化、在线用户统计、Session 监听…...




