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

佛山网站建设3lue3lue微信二次开发

佛山网站建设3lue3lue,微信二次开发,在线平面设计接单,室内设计最好的公司个人主页: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.yayakq.cn/news/966706/

相关文章:

  • 网站规划的主要任务是什么长治市建设工程交易网
  • 网站跳到另一个网站怎么做百盛联合建设集团有限公司网站
  • 广州网站开发企业装饰设计收费标准
  • 重庆智能建站模板北京网络职业学院怎么样
  • 做网站工作好么给卖假性药的做网站一般要判多久
  • 上海专业建网站汽车网站开发毕业设计论文
  • 广东网站优化公司小程序登录入口代码
  • 有哪些可以做图的网站啊apache建wordpress
  • 佛山网站优化美姿姿seo网站ie浏览器不兼容
  • 好的网站和网页有哪些室内设计效果图怎么收费
  • asp.net h5网站开发南昌所有建设工程网站
  • 有什么学做木工的网站吗织梦 网站地图
  • seo整站优化推广个人网站怎么做口碑
  • 湖南住房与城乡建设厅网站建湖做网站哪家好
  • 学校做安全台账是哪个网站中国建筑股吧
  • 海沧区建设局网站wordpress 图片无法显示
  • 科技网站哪个好免费的会员卡管理软件
  • 懂得网站推广电子商务网站开发意义
  • 中英文网站模板百度云 网站备案
  • 做内贸哪个网站找客户网络营销的特点主要包括
  • asp 网站路径泄露 解决网站建设前期策划书
  • vps 同时做ssh和做网站免费做调查的网站有哪些
  • 做网站运营工资是不是很低如何做网站好看
  • 大庆开发网站公司wordpress最新版底部版权
  • 快普网站怎么做采购退货福建建筑人才网官方网站
  • 海洋公司做网站推广wordpress vip会员
  • wordpress 刷评论整站优化关键词推广
  • 无锡专业做网站公司做网站注册35类哪几个小项
  • 东莞网站建设 塑胶五金营销型企业网站建设ppt
  • 吕梁网站设计软件开发工程师前景