部署Git+Gerrit+Jenkins 的CI环境

使用Git作为代码存储及版本控制

使用Jenkins进行自动化构建

构建测试通过后,再交给人工review

人工review通过后,自动同步到远程Git库中。

git —— 项目的版本管理工具

将项目的每个节点版本保存起来,以便随时能够回滚还原
协同开发
操作:
克隆远程仓库:git clone [ gitee仓库路径 ]
添加修改记录:git add --all ./
提交本地仓库:git commit -m "备注信息"
同步远程仓库:git push origin master

g++/gcc ——编译器,即将高级语言编译成为机器指令默认链接方式:动态链接

编译过程:
预处理——展开所有代码(宏替换,头文件,)
gcc -E 文件名 (-o(用来生成一个预处理文件) 生成的文件名)(mian.i)

编译——语法语义检测,没有错误则将代码解释成汇编指令
gcc -S 文件名 -o…(mian.s)
gcc -g——生成debug调试程序
eg: gcc -g main.c -o mian

汇编——将汇编指令解释成二进制的机器指令
gcc -c 文件名 -o…(mian.o)

链接——将所有需要的二进制机器指令(其他的.o以及库文件)打包生成可执行程序
gccmian.o -o…(mian)

静态链接:
将库中的使用到的代码写入到可执行程序中

缺陷:生成的程序较大,在运行时存在重复冗余代码
优点:运行时不需要依赖库

动态链接:
在可执行程序种记录库中函数符号信息表,并没有把具体实现的指令写入可执行程序,而是在运行程序的时候去加载这个库

优点:生成的程序小,在内存中共享库
缺陷:运行时依赖库的存在

gdb ——调试器,调试程序运行过程默认链接方式:

动态链接编译过程:预处理——展开所有代码(宏替换,头文件,)gcc -E 文件名 (-o(用来生成一个预处理文件) 生成的文件名)(mian.i)

编译——语法语义检测,没有错误则将代码解释成汇编指令
gcc -S 文件名 -o…(mian.s)
gcc -g——生成debug调试程序
eg: gcc -g main.c -o mian

汇编——将汇编指令解释成二进制的机器指令
gcc -c 文件名 -o…(mian.o)

链接——将所有需要的二进制机器指令(其他的.o以及库文件)打包生成可执行程序
gccmian.o -o…(mian)

静态链接:
将库中的使用到的代码写入到可执行程序种

缺陷:生成的程序较大,在运行时存在重复冗余代码
优点:运行时不需要依赖库

动态链接:
在可执行程序种记录库中函数符号信息表,并没有把具体实现的指令写入可执行程序,而是在运行程序的时候去加载这个库

优点:生成的程序小,在内存中共享库
缺陷:运行时依赖库的存在

gdb调试器——调试程序运行过程
调试程序的前提 ——这个程序是一个debug版本的程序

debug程序:
不进行代码优化,并且会加入调试信息
release程序:
会进行代码优化,提高程序运行效率(gcc默认生成release版本程序无法进行调试)
————————————————
版权声明:本文为CSDN博主「一月拾壹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/stromSLR/article/details/121342745

搭建CI环境和git使用的更多相关文章

  1. 为容器化的 Go 程序搭建 CI

    本文介绍如何使用 Jenkins 的声明式 pipeline 为一个简单的 Golang web 应用搭建 CI 环境.如果你还不太了解 Jenkins 及其声明式 pipeline,请先参考笔者的 ...

  2. Jenkins+Maven+Git CI环境搭建手册

    Jenkins+Maven+Git CI环境搭建手册 环境: OS:Linux version 2.6.32-220.23.2.ali878.el6.x86_64 (ads@kbuild) (gcc ...

  3. Jenkins+Gitlab搭建持续集成(CI)环境

    利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...

  4. 【Devops】【docker】【CI/CD】1.docker搭建Gitlab环境

    CI/CD[持续化集成/持续化交付] docker搭建Gitlab环境 1.查询并拉取gitlab镜像 docker search gitlab docker pull gitlab/gitlab-c ...

  5. React项目搭建基于Karma的CI环境

    简介 在浏览Github的时候是否经常看到这样的CI图标呢? 本文即为介绍如何为基于React的项目配置CircleCI的自动化测试环境 源码在此 本地实现 项目依赖如下: "devDepe ...

  6. Xcode Server (Xcode9)搭建CI

    Xcode 9将Xcode Server集成进来了,这是Xcode一个新特性,不用去单独下载server了,server可以用来做CI.自动化Test等等.这里主要介绍搭建CI,相当简单 打开开关,新 ...

  7. 「持续集成实践系列」Jenkins 2.x 搭建CI需要掌握的硬核要点

    1. 前言 随着互联网软件行业快速发展,为了抢占市场先机,企业不得不持续提高软件的交付效率.特别是现在国内越来越多企业已经在逐步引入DevOps研发模式的变迁,在这些背景催促之下,对于企业研发团队所需 ...

  8. 搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展

    上一篇:搭建LNAMP环境(四)- 源码安装PHP7 一.安装Redis 1.创建redis用户组和用户 groupadd redis useradd -r -g redis -s /sbin/nol ...

  9. 一步一步搭建Jenkins环境

    Jenkins使用经验谈1(一步一步搭建Jenkins环境)在公司使用 Jenkins 软件已经有一段时间了,走了很多弯路,但也积累了一些经验,可以和大家分享一下.我们来一起搭建Jenkins环境.首 ...

  10. 使用eclipse+tomcat搭建本地环境

    项目开发工具很多,这里简单介绍下使用eclipse+tomcat如何搭建本地环境. 安装开发工具如下: 1. jdk的安装参考 下载地址:http://pan.baidu.com/s/1sj9rVYX ...

随机推荐

  1. python Flask 操作数据库(2)

    单表操作 数据准备 from flask import Flask from flask_sqlalchemy import SQLAlchemy class Config: DEBUG = True ...

  2. vscode下无法使用fresh的问题

    使用了go get github.com/pilu/fresh ,需要 go install github.com/pilu/fresh. 在带用go.mod的版本中,go get只是下载代码和帮助修 ...

  3. Service层和Dao层的一些自我理解(╥╯^╰╥)(╥╯^╰╥)(学了这么久,这玩意儿似懂非懂的)

    学习java已经有很长时间了,但由于是在学校学的,基础不怎么扎实. 这几个月系统的学习,弥补了很多的缺陷,虽然大多数时间都在弄算法(咳咳),我前面的博客有写 如果有认真看过我代码的朋友会发现,我其实英 ...

  4. 主题 1 The Shell

    主题 1 The Shell 课程概览与 shell · the missing semester of your cs education (missing-semester-cn.github.i ...

  5. vivo 实时计算平台建设实践

    作者:vivo 互联网实时计算团队- Chen Tao 本文根据"2022 vivo开发者大会"现场演讲内容整理而成. vivo 实时计算平台是 vivo 实时团队基于 Apach ...

  6. 能将三次握手讲到这个程度,不给你offer给谁!

    摘要:在后端相关岗位的入职面试中,三次握手的出场频率非常的高,甚至说它是必考题也不为过. 本文分享自华为云社区<能将三次握手理解到这个深度,面试官拍案叫绝~>,作者:龙哥手记. 在后端相关 ...

  7. iOS如何实现自动化打包

    iOS如何实现自动化打包 前言 在我们的日常开发工作中,避免不了会出现这样的场景:需求迭代开发完成之后,需要提供ipa包给QA同学进行测试,一般会执行如下流程:1.执行Git Pull命令,拉最新的代 ...

  8. Loj 507 接竹竿 题解

    Loj链接:接竹竿 $ {\scr \color {SkyBlue}{\text{Solution}}} $ 题目大意: 给定一个数组,每次加入一种颜色的数,可以取走与它颜色相同的两个数之间的所有数, ...

  9. 结构型模式 - 代理模式Proxy

    学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 代理模式的定义与特点         代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问.这时,访问对象不 ...

  10. 3DText无法被物体遮挡 - 解决

    目录 开篇: 问题复现: 如何解决: 1.创建一个Shader 2.创建一个Material 3.给Material赋值字体 4.给3DText属性赋值 5.查看效果 希望大家:点赞,留言,关注咯~ ...