Linux gcc day7

动态链接和静态链接

形成的可执行的程序小:节省资源--内存,磁盘

无法c静态库链接的方法

原因是我们没有安装静态c库(.a)

所以要安装

sudo yum install -y glibc-static
gcc static静态编译选项提示错误:/usr/lib/ld:cannot find -lc - 小禾先生 - 博客园 (cnblogs.com)

我们的指令都是链接动态库的所以不可以乱删系统的c 库的东西

c++静态标准库

sudo yum install -y libstdc++-static

Linux项目自动化构建工具-make/Makefile

make是一个命令,makefile是一个文件

touch M/makefile //首字母可以大写也可以小写

vim M/makefile
makefile注意的事项

:是依赖关系

tab开头的是依赖方法

那如何用makefile清理?

编辑makefile文件

make是怎样执行的?

伪目标PHONY(下面有详细)

那系统是如何知道编译的文件为最新的呢?

是根据时间来判断

stat命令查看文件的时间

介绍 stat下的(access modify change(属性、权限))

为什么修改了文件的内容,change要修改呢?

因为当内容修改了,文件的大小就会修改所以change的是时间也会改变

回到话题

那系统是如何知道编译的文件为最新的呢?

是根据修改时间modify,因为先有源文件再有可执行目标文件,所以可执行文件的modify总是比源文件的modify要新,如果源文件被修改了那modify就会被修改,那系统就会用可执行文件modify和源文件modify对比就可以知道是否要更新

所以出现了伪目标.phony (停止以modify时间来判断or不以时间来判断)

makefile的推导规则:

不建议这样写,了解就好

Linux下的第一个小程序

了解下这个函数

fflush()函数-CSDN博客

倒计时:

/n是具有行刷新,fflush也具备行刷新(缓冲区刷新)

多文件形式编写进度条

编写完成保存退出

对makefile的编写

执行成功但是它会遮住命令行所以我们在函数下加printf("\n")

现在进行优化添加进度:如10%,50%

效果:

添加旋转效果:

增加进度条的形状选择

git命令行

git是什么?

版本控制器,类似于云仓库

自建网站----->我的版本控制器(git)可以不用客户端,直接在浏览器上可以进行操作

这个浏览器叫github(国外),因为国内原因访问不了外网(访问很慢)所以国人自己建立

gitee,git其实就是工具(去中心的分布化的版本控制器)

git发展史

git操作

进入gitee网站

回到Linux centos7 我的是xshell远程服务器

在选择自己合适的目录下

git clone **【****自己复制的仓库链接】 //**将远端的仓库拉取下来

因为.gitignore是.开头的隐藏文件所以要

ls -al 或者ll -a

vim .gitignore //打开

这文件上有的文件后缀名对应的文件是不会被上传到gitee上

为什么?因为gitee只接收 .c .h .cpp等源文件

将本地的仓库上传到远端的gitee上

实验:

yum install -y git //先安装git工具
git add . / /将新创建的文件添加到本地仓库.git (.git的临时区)

只要知道刚刚的命令将process文件经过二进制解码的方式添加到 .git 本地仓库就行

先不用管添加到哪里

(添加到本地仓库的临时区)

git commit -m 'xxxxxx' //xxx为日志不要乱写

将临时区的文件添加到本地仓库

push git //将本地的仓库推送到远端

提交成功
git log //查看日志

做一个实验

(准备环境)

第二步

现在我们已经在仓库里面建立的许多文件,如何对比呢?

git status //查看状态

现在有新增的也要修改的

怎么办呢?

git add . //将当前的目录下去找所有不存在的文件

打开gitee

我们在process目录下做的修改

若我们想要整体修改就要在最外面的目录下进行

git mv 【文件名】 【new文件名】

回到gitee,已经修改了

也就是本地和远端是同步的

刚刚的sln文件也没有传上来

很重要

注意:只可以口述

如果有一天一个人在gitee下直接修改了文件内容

另一个人在Linux本地仓库下增加了一个文件

想要同步远端仓库

hint :冲突

会有提示因为不同步,所以需要

git pull //将远端的仓库拉到本地

此时输入账号密码

会出现很多垃圾文件直接无视 :wq退出就行

搞完后再git push

现在远端和本地发生了同步

删除

git rm 【文件名】

git log

相关推荐
7yewh几秒前
嵌入式Linux QT+OpenCV基于人脸识别的考勤系统 项目
linux·开发语言·arm开发·驱动开发·qt·opencv·嵌入式linux
Arenaschi4 分钟前
在Tomcat中部署应用时,如何通过域名访问而不加端口号
运维·服务器
小张认为的测试5 分钟前
Linux性能监控命令_nmon 安装与使用以及生成分析Excel图表
linux·服务器·测试工具·自动化·php·excel·压力测试
waicsdn_haha12 分钟前
Java/JDK下载、安装及环境配置超详细教程【Windows10、macOS和Linux图文详解】
java·运维·服务器·开发语言·windows·后端·jdk
打鱼又晒网13 分钟前
linux网络套接字 | 深度解析守护进程 | 实现tcp服务守护进程化
linux·网络协议·计算机网络·tcp
良许Linux27 分钟前
0.96寸OLED显示屏详解
linux·服务器·后端·互联网
蜜獾云37 分钟前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
小屁不止是运维39 分钟前
麒麟操作系统服务架构保姆级教程(五)NGINX中间件详解
linux·运维·服务器·nginx·中间件·架构
Hacker_Oldv43 分钟前
WPS 认证机制
运维·服务器·wps
bitcsljl1 小时前
Linux 命令行快捷键
linux·运维·服务器