当前位置: 首页 > wzjs >正文

org域名怎么注册泉州百度推广排名优化

org域名怎么注册,泉州百度推广排名优化,沙洋县住房和城乡建设局网站,商业设计理念文章目录 一、如何理解条件编译二、动静态库1. 理论2. 实践3. 解决普通用户的sudo问题4. 技术上理解库 三、make和make_file 一、如何理解条件编译 1. gcc code.c -o code -DM 命令行级别的宏定义预处理的本质就是修改编辑我们的文本代码 头文件展开到源文件中去注释宏替换条…

文章目录

  • 一、如何理解条件编译
  • 二、动静态库
    • 1. 理论
    • 2. 实践
    • 3. 解决普通用户的sudo问题
    • 4. 技术上理解库
  • 三、make和make_file

一、如何理解条件编译

1.
在这里插入图片描述

gcc code.c -o code -DM 命令行级别的宏定义

在这里插入图片描述

预处理的本质就是修改编辑我们的文本代码

  1. 头文件展开到源文件中
  2. 去注释
  3. 宏替换
  4. 条件编译
宏定义的默认值是1
可以自己设置宏定义的值
-DM=100 -> #define M = 100 插入到我们的代码中

在这里插入图片描述
条件编译的用途?

  1. 软件进行专业度,收费情况进行区分(业务),使用条件编译,可以进行代码的动态裁剪,比如vs2022分为社区版和专业版
  2. Linux的内核源代码也是采用条件编译的方式进行代码的裁剪的
  3. 开发工具,应用软件,比如一款软件可以在windows下跑,也可以在linux下跑,在windows下就把Linux的代码裁掉,在linux下就把windows的代码裁掉

为什么C/C++编译,要先变成汇编?
4. 因为根据历史的发展,C语言如果直接编程二进制的机器语言成本太高了,那时候汇编的发展了几十年了,C语言变成汇编(然后汇编变成二进制是不需要我们处理的)打孔编程也叫二进制编程
在这里插入图片描述
编译器的发展过程
6. 自举过程:先出现汇编语言,然后发明用二进制版的汇编编译器编译汇编语言,之后迭代后,发明汇编语言的编译器编译汇编语言
在这里插入图片描述

二、动静态库

1. 理论

ls /usr/lib64 linux系统中自带的库

1. 库:是一套方法或者数据集,为我们开发提供最基本的保证(基本接口,功能,二次开发)
二次开发:比如printf函数不需要我们自己实现,可以直接调用

什么叫做动静态库,什么叫做动静态连接,如何理解?
1.动态库:linux(.so),windows(.dll)
2.静态库:linux(.a),windows(.lib)

2. lib是前缀,.so是后缀,中间的是c,就是C语言的库,是xyz,就是xyz的库
在这里插入图片描述
3. 动态库内部实现的方法我们自己实现的程序会使用库中的方法这两者链接起来形成可执行程序
在这里插入图片描述
4. 动态链接:执行目标方法,需要跳转到库中执行,执行完后在返回
静态链接:直接把静态库中的方法拷贝到目标程序中,直接在目标程序中执行这个方法

在这里插入图片描述

动态链接:

  1. 程序通过动态链接找到动态库,程序加载到内存中,在内存中往下执行任务,执行到上网这个任务时,通过库函数调用找到动态库实现,实现完之后就库函数返回
  2. 很多人都可以到网吧上网,所以网吧就是共享库被多个程序共享,一旦缺失,会导致所有程序无法执行
    在这里插入图片描述
    静态链接:
  3. 可以把电脑仓库中的电脑拷贝到我们的程序中,这样就不需要网吧了,把我们程序中使用的库方法拷贝给我们自己,静态库只有在链接的时候有效,一旦形成可执行程序,静态库可以不再需要
    在这里插入图片描述
    动静态库的对比:
  4. 动态库形成的可执行程序的体积一定很小
  5. 可执行程序对静态库的依赖程度很小,对动态的库的依赖程序大,所以动态库不能缺失
  6. 程序运行需要加载到内存,静态链接的会在内存中出现大量重复的代码
  7. 动态链接的比较节省内存和磁盘空间

2. 实践

1.系统下的库
在这里插入图片描述
2. 默认系统是动态链接的,ldd 是 Linux 系统中的一个命令行工具,用于打印共享库依赖关系,file code显示具体的文件信息
在这里插入图片描述
3. 静态链接

显示静态库
gcc code.c -o code -static
安装C语言的静态库
sudo yum install -y glibc-static

在这里插入图片描述

4.C语言的静态链接
在这里插入图片描述
验证C++:

5.C++安装静态链接
在这里插入图片描述
6.C++静态链接
在这里插入图片描述
7.关于动态库

  • 动态库会在内存中存在一份,这一份是所有程序共享的
  • 运行时,每个程序会加载自己的可执行文件到内存中,因此静态库的代码拷贝会在内存中存在多份(每个程序一份),静态库不会存在内存中
    在这里插入图片描述

3. 解决普通用户的sudo问题

1. 出现普通用户无法使用sudo的问题,
使用vim进入 etc/sudoers中修改配置文件的100行左右的root复制一份,添加给普通用户

在这里插入图片描述

在这里插入图片描述

4. 技术上理解库

1. 可以像C语言一样实现多文件的链接使用,比如.c文件调用.h文件使用

在这里插入图片描述
上层中有.h文件和.o文件(包含了.c文件),可以实现功能main中调用函数,上层中把所有的.o文件打个包变成了可执行文件
.c
func1实现函数
func2实现函数
.h中是方法的声明
在这里插入图片描述

2. 可以将多个.o文件打包形成一个可执行文件并且和.h文件放到一起,.o文件中存在.c实现文件,这样可以把这个给别人使用而不暴露源文件

在这里插入图片描述
3. 所有的.o是一个库
在这里插入图片描述

4. 链接的本质是打包所有的.o文件(包括自己的.o和C语言库中的.o文件),和库C语言库中的.h文件一起形成可执行文件

在这里插入图片描述

三、make和make_file

1. make是一条命令,make_file是一个文件

在这里插入图片描述

2. 进入vim在Makefile文件中写入如下命令,这样使用make命令,就等同于使用如下命令

code:code.c
tab键(四个空格) gcc -o code code.c

在这里插入图片描述

3. 依赖关系和依赖方法

code:code.c 依赖关系
tab键(四个空格) gcc -o code code.c 依赖方法

在这里插入图片描述

http://www.dtcms.com/wzjs/443119.html

相关文章:

  • 网站做子页跳转到首页百度搜索资源平台token
  • 自动化的网站建设深圳推广公司介绍
  • 怎样制作免费的网站今日新闻最新10条
  • 长沙做企业网站推广的公司太原网站制作推广
  • 制作网站花都抖音推广怎么收费
  • 路由器 做网站软文网站推广法
  • 呼和浩特企业网站建设免费推广有哪些
  • 最优网络做网站怎么样企业网络推广计划
  • 石家庄市最新疫情区域长沙seo公司排名
  • 网站建设需要交印花税吗营销方案的几个要素
  • 什么网站能看到专业的做面包视频南宁网站seo外包
  • 天津企业网站开发指数工具
  • 郑州做网站推广电话新的seo网站优化排名 排名
  • 刷QQ砖的网站咋做谷歌收录提交入口
  • 太原哪里做网站网络营销的主要内容包括
  • 郑州企业网站开发电子商务沙盘seo关键词
  • 网站二级域名怎么做seo的搜索排名影响因素主要有
  • 品牌的佛山网站建设价格公关服务
  • 网站建设行业分析搭建一个网站
  • 网站推广公司兴田德润在哪儿郑州谷歌优化外包
  • 武汉做网站好的公司网址大全浏览器主页
  • 凡科建站登录入口官方正版产品线上推广方式都有哪些
  • 建立生态产品trinseo公司
  • 天津市工程建设公众信息网官网网络优化师
  • 广州手机网站案例建网站找谁
  • 国家建设部投诉网站企业文化培训
  • 广安发展建设集团门户网站谈谈对seo的理解
  • 网站设计制作一般多少钱百度在线翻译
  • 用层还是表格做网站快百度极速版
  • 现在学做网站赚钱吗推广品牌的策划方案