• 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

  • 相关阅读:
    Pnpm:包管理的新星,如何颠覆 Npm 和 Yarn
    【可转债,股票】低频量化数据
    查询订单总量的前10名
    从工厂打螺丝到月薪9.5k测试工程师,我该满足吗?
    企业经营欺诈评分模型的开发与划定
    【Win】怎么下载m3u8视频\怎么通过F12开发人员工具获取视频地址\怎么下载完整的.ts格式视频
    浏览器播放rtsp视频,基于nodeJs
    verilog学习笔记(1)module实例化2
    Java 如何清除Map集合中指定元素呢?
    A Comprehensive Survey on Graph Neural Networks
  • 原文地址:https://blog.csdn.net/2303_76260560/article/details/137754019