当前位置: 首页 > news >正文

工作日志day02

1.云计算? 相关职位

开源软件和linux起源:

  1. 自由软件之父:理查德.斯托曼
  2. linux之父:林纳斯.本纳第克特.托瓦兹

linux发行版

  1. RHEL:Red Hat Enterprise Linux  红帽linux商业公司
  2. CentOS:Community Enterprise Operating System 社区企业操作系统 免费的商业软件
  3. Ubuntu:桌面应用为主的开源GUN/Linux操作系统
  4. Debian

RHCE:红帽认证工程书

  1. RHCSA:红帽认证系统管理员
  2. RHCE:红帽认证工程师
  3. RHCA:红帽认证架构师

服务器分类:

  1. 塔式服务器
  2. 机架式服务器
  3. 刀片服务器

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?(跨平台)

  1. CMakeLists.txt
  2. 普通用户,cd ~ 相当于cd /home/当前用户名
  3. cd - 返回进入此目录之前所在目录
  4. c++ main.cpp 编译,查看错误
  5. vim main.cpp创建并编辑
  6. ./a.out运行
  7. 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})
    ~                                            
  8. cmake .生成Makefile文件
  9. make编译
  10. ./hello可执行文件
  11. rm -rf 文件名
  12. unzip解压文件
     
  13. 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:

  1. 写绝对路径
  2. 可以写相对路径,相对路径的实际路径是:${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.云计算&#xff1f; 相关职位 开源软件和linux起源&#xff1a; 自由软件之父&#xff1a;理查德.斯托曼linux之父&#xff1a;林纳斯.本纳第克特.托瓦兹linux发行版 RHEL&#xff1a;Red Hat Enterprise Linux 红帽linux商业公司CentOS:Community Enterprise Operating Sys…...

C++Primer16.1.6节练习

练习16.28&#xff1a; 简易的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…...

初尝并行编程

进程被分为后台进程和应用进程 大部分后台进程在系统开始运行时被操作系统启动&#xff0c;完成操作系统的基础服务功能。大部分应用进程由用户启动&#xff0c;完成用户所需的具体应用功能 进程由程序段、数据段、进程控制块三部分组成 程序段也被称为是代码段&#xff0c;…...

keepalived学习记录:对其vip漂移过程采用gdb跟踪

对其vip漂移过程采用gdb跟踪keepalived工具主要功能产生vip漂移过程两种情况gdb调试常用命令gdb调试时打到的函数栈&#xff08;供学习参考&#xff09;函数栈的图是本人理解下画的&#xff0c;不对请多指正 keepalived主要有三个进程&#xff0c;父进程是core进程&#xff0c;…...

51单片机串口通讯原理及程序源码-----day8

51单片机串口通讯原理及程序源码-----day8 1.定义单片机为TTL电平&#xff1a;高 5V 低 0V RS232电平&#xff1a; 计算机的串口高 -12V 低12V 所以计算机与单片机之间通讯时需要加电平转换芯片CH340T 、 MAX232。 2.通信分类&#xff1a; &#xff08;1&#xff09;并行通信通…...

mongodb入门到使用(下)

mongodb中常用命令操作一、用户操作二、创建用户三、数据库操作基本操作四、扩展操作五、集合操作一、用户操作 在mongo中使用mongodb都需要在admin数据库中操作。然后在使用下面的命令 use admin二、创建用户 db.createUser({"user":"imooc", #用户名&q…...

云HIS系统源码 医院his源码 云his源码

大型医院his系统源码 SaaS运维平台多医院入驻强大的电子病历完整文档 &#xff0c;有演示 一、系统概述&#xff1a; 基层卫生健康云是一款满足基层医疗机构各类业务需要的健康云产品。该产品能帮助基层医疗机构完成日常各类业务&#xff0c;提供病患挂号支持、病患问诊、电子…...

朴素贝叶斯法学习笔记

频率派和贝叶斯派 频率派认为可以通过大量实验&#xff0c;从样本推断总体。比如假定总体服从均值为μ\muμ&#xff0c;方差为σ\sigmaσ的分布。根据中心极限定理&#xff0c;是可以通过抽样估算总体的参数的&#xff0c;而且抽样次数越多&#xff0c;对总体的估计就越准确。…...

vscode与C++安装与使用【不好用来骂我】

网上教程很多&#xff0c;但是都不太好用&#xff0c;这是我垃圾堆里淘金淘出来的教程&#xff1a; 安装软件 安装 Visual Studio Code: 你需要下载并安装 Visual Studio Code&#xff0c;可以在官网下载 https://code.visualstudio.com/download。 安装 C 扩展: 在 Visual S…...

C++11使用多线程(线程池)计算相似度实现性能优化

需求&#xff1a;图像识别中&#xff0c;注册的样本多了会影响计算速度&#xff0c;成为性能瓶颈&#xff0c;其中一个优化方法就是使用多线程。例如&#xff0c;注册了了3000个特征&#xff0c;每个特征4096个float。可以把3000个特征比对放到4个线程中进行计算&#xff0c;然…...

【测绘程序设计】——平面坐标转换

测绘工程中经常遇到平面坐标转换——比如,北京54(或西安80)平面坐标转换成CGCS2000平面坐标、工程独立坐标系平面坐标转换成CGCS2000平面坐标等,常用转换模型包括:①三参数法(2平移+1旋转);②四参数法(赫尔默特法,2平移+1旋转+1尺度);③六参数法(仿射变换法,2平移…...

五子棋的设计与实现

术&#xff1a;Java等摘要&#xff1a;五子棋是一种两人对弈的纯策略型棋类游戏&#xff0c;非常容易上手&#xff0c;老少皆宜。为了更好的推广五子棋&#xff0c;研究简单的人工智能方式&#xff0c;运用Java开发五子棋游戏。主要包含了人机对战&#xff0c;棋盘初始化&#…...

大数据项目软硬件选择

目录 一.技术选型 二.系统数据流程设计 三.框架版本选型 如何选择Apache/CDH/HDP版本...

redis数据结构的适用场景分析

1、String 类型的内存空间消耗问题&#xff0c;以及选择节省内存开销的数据类型的解决方案。 为什么 String 类型内存开销大&#xff1f; 图片 ID 和图片存储对象 ID 都是 10 位数&#xff0c;我们可以用两个 8 字节的 Long 类型表示这两个 ID。因为 8 字节的 Long 类型最大可以…...

同步、异步、全双工、半双工的区别

1、通讯 1.1 并行通讯 定义&#xff1a;一条信息的各位数据被同时传送的通讯方式称为并行通讯&#xff1b; 特点&#xff1a; 各个数据位同时发送&#xff0c;传送速度快、效率高&#xff0c;但有多少数据位就需要多少根数据线&#xff0c;因此传送成本高&#xff0c;并且只…...

ClickHouse 与 Amazon S3 结合?一起来探索其中奥秘

目录ClickHouse 简介ClickHouse 与对象存储ClickHouse 与 S3 结合的三种方法示例参考架构小结参考资料ClickHouse 简介ClickHouse 是一种快速的、开源的、用于联机分析&#xff08;OLAP&#xff09;的列式数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;由俄罗斯的Yan…...

【Spark分布式内存计算框架——Structured Streaming】1. Structured Streaming 概述

前言 Apache Spark在2016年的时候启动了Structured Streaming项目&#xff0c;一个基于Spark SQL的全新流计算引擎Structured Streaming&#xff0c;让用户像编写批处理程序一样简单地编写高性能的流处理程序。 Structured Streaming并不是对Spark Streaming的简单改进&#xf…...

【Windows】【Linux】---- Java证书导入

问题&#xff1a; PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 无法找到请求目标的有效证书路径 一、Windows—java证书导入 1、下载证书到本地&#xff08;以下…...

【Linux学习】菜鸟入门——gcc与g++简要使用

一、gcc/g gcc/g是编译器&#xff0c;gcc是GCC(GUN Compiler Collection&#xff0c;GUN编译器集合)中的C编译器&#xff1b;g是GCC中的C编译器。使用g编译文件时会自动链接STL标准库&#xff0c;而gcc不会自动链接STL标准库。下面简单介绍一下Linux环境下&#xff08;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站关注“硬小二”浏览更多演示视频...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

【iOS】 Block再学习

iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...

【51单片机】4. 模块化编程与LCD1602Debug

1. 什么是模块化编程 传统编程会将所有函数放在main.c中&#xff0c;如果使用的模块多&#xff0c;一个文件内会有很多代码&#xff0c;不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里&#xff0c;在.h文件里提供外部可调用函数声明&#xff0c;其他.c文…...

VSCode 使用CMake 构建 Qt 5 窗口程序

首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...

接口 RESTful 中的超媒体:REST 架构的灵魂驱动

在 RESTful 架构中&#xff0c;** 超媒体&#xff08;Hypermedia&#xff09;** 是一个核心概念&#xff0c;它体现了 REST 的 “表述性状态转移&#xff08;Representational State Transfer&#xff09;” 的本质&#xff0c;也是区分 “真 RESTful API” 与 “伪 RESTful AP…...