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

郴州网站seo今日的头条新闻

郴州网站seo,今日的头条新闻,网站方案书免费,网站域名以co与com有什么不同个人主页:chian-ocean 文章专栏 前言: GCC(GNU Compiler Collection)是一个功能强大的编译器集合,支持多种语言,包括 C 和 C。其中 gcc 用于 C 语言编译,g 专用于 C 编译。 Linux GCC or G的安…

个人主页:chian-ocean

文章专栏

前言:

GCC(GNU Compiler Collection)是一个功能强大的编译器集合,支持多种语言,包括 C 和 C++。其中 gcc 用于 C 语言编译,g++ 专用于 C++ 编译。

在这里插入图片描述

Linux GCC or G++的安装

安装 GCC

运行以下命令安装 GCC:

sudo yum install -r gcc

安装完成后,可以再次检查版本:

gcc --version

在这里插入图片描述

安装G++

运行以下命令安装 GCC:

sudo yum install -r g++

安装完成后,可以再次检查版本:

g++ --version

在这里插入图片描述

Linux的代码编译

预处理(Preprocessing)

预处理的工作

  • 去掉注释
  • 展开头文件
  • 条件编译
  • 宏替换

C++代码执行

g++ -E code.cpp -o code.i 
# 可以生成与处理文件,生成.i文件

在这里插入图片描述

编译(Compilation)

编译器将预处理后的源代码转换为汇编代码(文本形式的机器指令)。

  • 生成汇编代码(通常是 .s 文件)。
  • 编译器会进行语法分析和语义检查。
g++ -S code.i -o code.s
# 可以生成与处理文件,生成.s文件

在这里插入图片描述

汇编(Assembly)

汇编器将汇编代码(.s 文件)转换为二进制的目标代码(.o 文件)。

  • 汇编代码被转换为机器能够理解的指令。
  • 生成目标文件(通常是 .o.obj 文件)。
g++ -E code.s -o code.0
# 可以生成与处理文件,生成.0文件
od filename # 可以进行查看

在这里插入图片描述

链接(Linking)

函数库(Library)简介

在编程中,函数库是指封装了一组可重用函数、类或其他代码模块的集合,目的是简化开发、提高代码复用性。函数库通常以静态库(*.a*.lib)或动态库(*.so*.dll*.dylib)的形式存在。

在这里插入图片描述

类型描述
静态库在编译时将库的代码嵌入到可执行文件中,生成的文件独立运行,不依赖外部库。
动态库在运行时加载库文件,节省空间和内存,可以被多个程序共享。

动态链接

动态库(Dynamic Library)是一种在运行时加载的库,可以被多个程序共享,以节省存储空间和内存。动态库的文件扩展名在不同操作系统中有所不同:

  • Linux: .so(Shared Object)
  • Windows: .dll(Dynamic Link Library)
  • macOS: .dylib
ldd  #可以查看可执行程序所依赖的动态库

下面是code可执行文件所以来的动态库

在这里插入图片描述

静态链接

静态库是一种将一组目标文件(.o 文件)打包成单个文件(通常扩展名为 .a.lib)的技术,便于代码复用。静态库在编译时链接到可执行文件中,因此运行时不需要额外的库支持。

  • Linux: .a
  • Windows: .lib
g++ code.cpp -static -o code-static # 可以生成静态链接

在这里插入图片描述

动态VS静态

定义

链接方式定义
静态链接在编译阶段,将所需库的代码嵌入到可执行文件中,生成一个独立的可执行文件。
动态链接在运行时加载所需的库(动态库),可执行文件只包含对库的符号引用,库本身存储在外部文件中(如 .so)。

操作系统命名

操作系统静态库扩展名动态库扩展名
Linux.a.so
Windows.lib.dll
macOS.a.dylib

对比表

特性静态链接动态链接
生成的可执行文件大小较大(嵌入所有库代码)较小(仅包含对动态库的引用)
运行时依赖无需外部库,独立运行需要动态库文件
运行效率高(无需加载外部库,直接执行)稍低(运行时加载动态库)
内存使用每个程序独立占用库的代码和数据多个程序共享同一动态库
更新维护更新库后需重新编译程序更新库后程序无需重新编译
部署和兼容性部署简单,无需额外的动态库部署复杂,需要确保动态库存在并与程序兼容
符号冲突不易出现,因为库代码独立嵌入到每个可执行文件中可能出现多个库之间的符号冲突
和兼容性**部署简单,无需额外的动态库部署复杂,需要确保动态库存在并与程序兼容
符号冲突不易出现,因为库代码独立嵌入到每个可执行文件中可能出现多个库之间的符号冲突
适用场景嵌入式系统、小型独立工具、运行环境固定的场景大型系统、需要频繁更新库或共享库的场景
http://www.dinnco.com/news/27642.html

相关文章:

  • 宝安网站建设zrare自己怎么做网站推广
  • 交互设计网站案例微指数官网
  • 营销型网站建设价格班级优化大师官方免费下载
  • 《电子商务网站开发实训》总结百度百度地图
  • 哪些网站可以做电脑画画赚钱搜索指数
  • 扬州市建设工程招投标信息网seo关键词优化怎么做
  • 电商做网站“跨年”等关键词搜索达年内峰值
  • 怎么样从头开始做网站网站营销策划公司
  • 哪个网站美丽乡村做的比较好百度小说排行榜第一名
  • 多个网站 备案厦门头条今日新闻
  • 衡水做网站哪家好排名优化公司电话
  • 秦皇岛建设网站百度公司电话是多少
  • pc网站手机网站app百度资源搜索平台官网
  • 新闻网站开发论文重庆seo网络优化咨询热线
  • 网站建设公司的转型网络营销做的好的企业
  • 网站推广效果的评估指标主要包括湖南长沙seo
  • 常见的网络营销的方式有哪些网络优化培训
  • 青海网站开发经典营销案例100例
  • 备案 网站名称什么用互联网营销方案
  • 做网站的好处在哪里阜康管委主任网推app
  • 网上有兼职做数据网站整合营销包括哪三方面
  • wordpress多站点设置seo外包 靠谱
  • 网站搭建书籍推荐百度搜索平台
  • 商业网站建设视频教程旅游景区网络营销案例
  • 专业从事成都网站建设抖音推广佣金平台
  • 景区旅游网站平台建设方案你就知道首页
  • 深圳专业集团网站建设百度风云榜小说排行榜历届榜单
  • wordpress让浏览显示K单位seo有哪些网站
  • 网站 html 作用百度竞价登录入口
  • 网站公司怎么做推广网站友链