首页 > 其他分享 >搭建CI环境和git使用

搭建CI环境和git使用

时间:2022-11-17 13:35:36浏览次数:56  
标签:CI git mian gcc 可执行程序 生成 链接 搭建

部署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,mian,gcc,可执行程序,生成,链接,搭建
From: https://www.cnblogs.com/chuting/p/16899183.html

相关文章

  • git的使用
    git的使用1.git的作用1、在工作目录中修改某些文件2、对修改后的文件进行快照,然后保存到暂存区域3、提交更新,将保存在暂存区域的文件快照永久转储到git目录2.git......
  • React-App环境搭建和项目启动
    node环境>=14.0.0npm环境>=5.6安装create-react-app:npmi-gcreate-react-app(cnpm/yarn)创建项目:create-react-appreact-project(项目名称)进入项目根目录:cdreact-p......
  • python神经网络编程2之用python搭建神经网络
    【python基础】环境:JupyterNotebookforninrange(10):print(n)pass#标志循环结束,下一行回正常缩进,done只打印一次我也可以删掉orzprint("done") ......
  • 强烈推荐!老板再也不用担心我的数据存储了-搭建GFS
    理论优点:分布式卷具有更好的性能、高扩展性以及可靠性,而且无元服务器(存放所有目录的结构,类似书的目录,方便找到所需数据在哪个节点),某种类型的分布式卷不但支持高扩展而且,具备......
  • idea中git的相关操作(忽略文件、push,pull,commit)
    一、忽略文件不起作用的问题1、原因忽略文件只跟踪未track状态的文件,所以只需要把本地缓存删除了,再提交。(idea要安装.ignore插件)2、解决办法以下命令需要在当前项目文......
  • mysql8.0.31 mgr搭建
    1. mysql下载地址:MySQL::DownloadMySQLCommunityServer2. mgr文档:MySQL::MySQL8.0ReferenceManual::18GroupReplication3.安装实例:a) 解压ta......
  • git解决.gitignore文件不生效的问题
    原因:第一次提交git的时候.gitignore文件会记录到缓存中,如果有更新不生效的情况可以尝试以下步骤  注意:第一个命令是有那个点的......
  • Qt搭建MQTT环境
    我只说一点,非常关键!!! 1、在下载qtmqtt时候,要选与你qt版本相同的包,不然编译总出错! 原因可看这篇文章:​​https://forum.qt.io/topic/120579/no-member-named-erroroccurred-......
  • Citrix Linux VDA 2209的全文解析
    本文翻译自TerryHou的BestpracticestoensureyouhavetheCitrixLinuxVDAsupportyouneed。随着最近CVAD2209和CitrixLinuxVDA2209的发布,CitrixLinuxVDA现在......
  • pci设备巡检
    1、内核设备检测pci_subsys_initpci_legacy_initpcibios_scan_rootpci_scan_root_bus(从rootbus开始扫描)pci_create_root_bus......