Linux
文章平均质量分 69
郑师傅炒板栗
老师不是说你啊
展开
-
1.2 GCC 编译四步骤
一、总概述图gcc -E xxx.c -o xxx.i二、原创 2021-12-20 23:39:45 · 399 阅读 · 0 评论 -
1.9静态库和动态库的对比
一、程序编译成可执行程序的过程二、静态库制作过程三、动态库制作过程四、什么时候使用静态库,什么时候使用动态库?一般情况下,如果库挺小的,就使用静态库;如果库大的话,建议使用动态库;理解二者的优缺点后,就可以明白了五、静态库的优缺点:(代码运行的时候要加载到内存中)优点:静态库被打包到应用程序中加载速度快;(程序一运行就加载到内存中)发布程序无需提供静态库,移植方便;缺点:消耗系统资源,浪费内存;更新,部署,发布麻烦;(程序要重新编译)六、动态库的优缺点原创 2022-04-06 20:47:22 · 330 阅读 · 0 评论 -
1.6动态库的制作
一、动态库的命名规则1. Linux:libxxx.solib:前缀(固定)xxx:库的名字,自己起.so:后缀(固定)在Linux下是一个可执行文件2. Windows:libxxx.dll原创 2022-04-05 22:00:23 · 2677 阅读 · 0 评论 -
1.4 静态库的制作
一、什么是库库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库(二进制),它提供给使用者一些可以直接拿来用的变量、函数或类;库是特殊的一种程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行。(因为要提供给别人使用)库文件有两种,静态库和动态库(共享库),二者的区别是:静态库在程序的链接阶段被复制到了程序中;(根据GCC编译的原理,预处理—编译—汇编—链接(链接成可执行程序);其实静态库和动态库都是在链接阶段做的处理)动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动原创 2022-04-04 00:07:06 · 1154 阅读 · 0 评论 -
配置文件使VSCode连接Ubuntu时无需重复输入密码
一、在XShell(已经连接到Ubuntu上)输入:ssh-keygen -t rsa# 结果如下:二、继续在命令行中输入:vim authorized_keys然后在本机的用户-> .ssh文件夹下,复制id_rsa.pub里面的公钥内容,到authorized_keys中,再输入:wq,保存后退出(vim的内容);三、以上做完就大功告成了,以后通过VSCode打开连接的Ubuntu的内容,就无需重复输入密码了...原创 2022-03-25 13:32:47 · 2093 阅读 · 0 评论 -
Linux之文件和用户管理(二)
一、临时文件与相对路径1. 前提场景当你在编辑文件的时候 ,例如:用vim /1.txt 打开了一个文件并且编辑写入了内容,但是接下来却没有保存而强制退出了;这时候你再用 vim 1.txt打开此文件,会报E325错误;会有提示,你是要打开1.txt文件(编辑第一次写的东西)还是.1.txt.swp文件(还是要编辑第二次没保存的东西);vim /1.txt 原来的文件还在的;vim /.1.txt.swp 这一份,是服务器给你的备份 意外关闭之前的也在(未保存文件);文件名前面有.代表隐原创 2021-12-20 22:28:06 · 2476 阅读 · 0 评论 -
Linux之文件和用户管理(一)
一、文件管理1.Linux目录结构简洁(1)Windows:以多根的方式组织文件 C:\ D:\ E:\(2)Linux以单根的方式组织文件 /2.Linux 目录结构视图pwd 命令显示当前目录(1)bin: (binary 二进制)执行命令都在这里,比如给用户改密码等等;bin 普通用户使用的命令 /bin/ls, /bin/data;sbin 管理员使用的命令 /sbin/service;(2)boot:启动文件,与计算机启动相关的文件都会独立的放在这里;(3)dev:设备文件,原创 2021-12-14 16:39:28 · 1120 阅读 · 0 评论 -
使用FinalShell连接已经搭好的虚拟机(centos 7)
一、前提环境1.本机Windows上已经下载好FinalShell2.VMWare上已经搭建好服务器(承载centos 7操作系统)原创 2021-12-09 21:21:37 · 7818 阅读 · 11 评论 -
shell
shell2.1 shell 家族shell:命令解释器,根据输入的命令执行相应命令。命令解释器的作用:对用户输入到终端的命令进行解析,调用对应的执行程序用户在终端输入命令,由shell命令解释器对命令进行解析(按照$PATH环境变量搜索命令),解析成内核能够识别的指令,然后由内核执行命令,最后由终端显示命令执行的结果给用户查看当前系统下有哪些shell:cat /etc/shells查看当前系统正在使用的shell:echo $SHELL常见shell:/bin/sh (已经被/b原创 2021-12-09 10:29:30 · 247 阅读 · 0 评论 -
GIT 安装教程
一、下载git1.官网链接(慢)git下载2.镜像下载(官网速度慢)git下载windows的下载.exe;Linux系统的下载.tar.bz2;找到最新版的下载Git-2.34.1-32-bit.exe(Git-2.34.1-32-bit.tar.bz2)二、安装1.click next2.选择自定义路径,next3.选择组件,next4.click next5.可以选择文本编辑器,默认vim,click next6.click next7.click n原创 2021-12-05 21:47:11 · 552 阅读 · 0 评论 -
GIT 卸载干净(图文详解)
一、找到GIT CMD ,右键点击卸载二、以上会跳转到控制面板,在控制面板上卸载三、点击 <是>,进行卸载四、等待卸载过程五、在环境变量,把相关信息删除干净原创 2021-12-05 20:59:20 · 49357 阅读 · 0 评论 -
互斥量概念,用法,死锁演示及解决详解
一、互斥量(mutex)的基本概念1.我们为什么需要互斥量这就涉及到了共享资源的概念,例如:买票这一行为,(票就是我们的共享资源)假设有两个窗口 1 和 2号窗口(可以看成是两个"售票"子线程),这时有两人同时购买从上海到北京的票,同样挑中了A1座,如果这时不对这类行为做任何处理,就会造成两个人同时买到A1票的错误反馈。保护共享数据,操作时,某个线程 用代码把共享数据锁住->操作数据->解锁;其他想操作共享数据的线程必须等待解锁->锁定住->操作->解锁;以上原创 2021-12-02 20:40:48 · 2378 阅读 · 0 评论 -
创建多个线程、数据共享问题分析、案例代码
一、创建和等待多个线程1.代码#include "stdafx.h"#include <iostream>#include <stdio.h>#include <thread>#include <vector>using namespace std;//可以很多个线程用同一个入口函数//线程入口函数void myCout(int inum){ cout << "myCout线程开始执行了,线程编号 = " <<原创 2021-12-01 21:55:14 · 335 阅读 · 0 评论 -
线程启动、结束,创建线程的多方法
一、范例演示线程运行的开始和结束visual studio 2015环境以下代码示例中:不会有system("pasue");因为这会让程序运行卡住看不出效果,要解决控制台闪退,最好别用这种方法。可以右键项目属性--->链接器--->系统在子系统中选择控制台 (/SUBSYSTEM:CONSOLE),最后点击应用确定。还有一点需要注意!或许你按F5运行起来,依旧会闪退,这是由于F5是Debugging模式,在这个模式下,当程序运行结束后,窗口不会继续保持打开状态。而Ctrl原创 2021-11-30 17:28:47 · 734 阅读 · 0 评论 -
一、并发、进程、线程的基本概念和综述
一、并发1.并发的概念两个或者更多的任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务;以往计算机,是单核CPU(中央处理器),某一时刻只能执行一个任务:如何实现同时执行多个独立任务的需求?实现多任务的方式,就是由操作系统调度,每秒钟进行多次所谓的“任务切换”。例如:第一个任务做10ms,然后切换到第二个任务做10ms...,切换的快,相当于多个任务同时在做一样。实际上并不是一种真正的多任务,是一种并发的假象(不是真正的并发);这种切换(上下文切换)是要有时间开销的,原创 2021-11-27 18:47:39 · 379 阅读 · 0 评论 -
vmvare 15.0 安装Ubuntu 20.04完整教程(图文详解)
一、先下载Ubuntu 20.04镜像Ubuntu 20.04镜像地址二、接下来进行 VMware 安装配置1.点击创建新的虚拟机,选择自定义,然后点击下一步2.选择虚拟机硬件兼容性:点击下一步3.安装客户机操作系统:选择稍后安装操作系统,然后点击下一步4.选择客户机操作系统:选择Linux(L),接着在版本处选择Ubuntu 64位,然后点击下一步5.命名虚拟机:默认名称,然后自定义安装的位置,最后点击下一步6.处理器配置:可以自定义你需要的处理器和内核数量,然后点击下一步7.选择原创 2021-11-23 23:08:06 · 5448 阅读 · 0 评论