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

大连金州属于哪个区厦门seo测试

大连金州属于哪个区,厦门seo测试,平面图设计网站,网站超级链接怎么做前言 工欲善其事,必先利其器。工作中经常用到的各种’东西’,如CMake、QMake、Make、MSBuildCLang、GCC、MinGW、MSVC等,有些在命名上有些类似,实际作用却不尽相同。 因此这里换个角度来了解下这些‘东西’的作用,以…

前言

工欲善其事,必先利其器。工作中经常用到的各种’东西’,如CMake、QMake、Make、MSBuildCLang、GCC、MinGW、MSVC等,有些在命名上有些类似,实际作用却不尽相同。

因此这里换个角度来了解下这些‘东西’的作用,以及这些‘东西’之间的联系。

组成

基于多年开发经验,这里将个人理解的开发环境划分成4个部分:
1

下面开始逐一介绍。

构建系统

构建系统,是构建系统生成器的简称,它读取CMakeList.txt中的指令,生成特定构建工具(例如 Make、Ninja、Visual Studio、Xcode)所需的构建文件(例如 Makefile、.sln、.xcodeproj)。

这里引出下面要介绍的构建工具

常见的不同平台的构建系统(构建系统生成器)有:
2

CMake(跨平台通用)

CMake是目前最流行的跨平台构建系统生成器,广泛用于 C/C++ 项目(也支持其他编程语言),它使用 CMakeLists.txt 文件描述项目信息,通过CMake,可以生成各种构建工具的所需构建文件,例如 Makefile (用于 Make)、Ninja 构建文件、Visual Studio 解决方案文件 (.sln)、Xcode 项目文件 (.xcodeproj) 等。

QMake(跨平台通用)

QMake是Qt 官方提供的构建系统生成器,仅支持C++。

QMake使用 .pro 文件描述项目信息,通过QMake可以生成 Makefile(用于 Make)、Visual Studio 项目文件(.sln)。

QMake与 Qt 框架集成紧密,可以方便地处理 Qt 特有的构建步骤,例如 moc、uic 和 rcc。

Meson(Linux/macOS)

Meson是一个在 Linux 桌面开发领域相对较新的构建系统生成器,旨在提供更快的速度和更简洁语法的构建系统生成器。它使用简单的声明式语言描述构建过程,默认使用 Ninja 作为构建工具,当然也支持其他构建工具。

Autotools(Linux/macOS)

Autotools 是一套用于生成可移植的构建系统的工具集,它由 Autoconf、Automake 和 Libtool 等工具组成,共同协作来创建 configure 脚本和 Makefile 文件。

相当于是自带了构建系统、构建工具。扩展性较差,较为局限。

至此可以知道:构建系统(生成器)需要项目描述文件,并以此生成构建工具所需的构建文件。

构建工具

上面提到了构建系统(生成器)生成了各种构建文件,拿到构建文件后,构建工具就开始介入构建流程了。

构建工具,可以理解成自动化构建过程的工具,它们管理编译、链接、打包等步骤,并处理依赖关系。

常见的不同平台的构建工具有:
3

Make (GNU Make)

Make是一个经典的构建工具,使用 Makefile 文件描述构建规则,广泛用于 C/C++ 项目,支持 Linux/macOS。

Ninja

Ninja是一个小型的、专注于速度的构建系统,它旨在提供尽可能快的构建速度。

Ninja支持 Windows/Linux/macOS。

MSBuild (Microsoft Build Engine)

MSBuild 是微软的构建工具,用于构建应用程序。

它是 Visual Studio 的核心构建引擎,也支持在命令行中使用。

MSBuild 使用 XML 格式的项目文件(例如 .csproj、.vbproj、.vcxproj)来描述构建过程。

仅支持 Windows。

nmake

nmake 是微软的命令行构建工具,类似于 Unix 系统中的 make。

它读取 Makefile 文件,其中包含了构建项目的规则,然后根据这些规则执行相应的命令,从而自动化构建过程。

仅支持 Windows。

至此可以知道:构建工具通过构建系统(生成器)生成的构建文件,开始自动化构建过程(编译、链接、打包、处理依赖等)

编译器

通过对构建工具的介绍,这里可以知道编译是构建中的一环,大致流程如下:
4

此外的预处理器、链接器等因篇幅有限不再过多介绍。

常见的不同平台的编译器如下:
5

GCC

GCC是一个开源的编译器套件,支持多种编程语言,包括 C、C++、Fortran、Java 等。

GCC 不仅是编译器,它还包含其他工具,例如汇编器、链接器等,因此被称为“编译器套件”。

GCC通常与 Make构建工具一起使用。

支持 Linux/macOS。

CLang

CLang是一个基于 LLVM 的开源编译器前端,它旨在提供更快的编译速度、更好的错误诊断信息和更模块化的设计。

Clang 支持 C、C++、Objective-C 和 Objective-C++ 等语言。

Clang 通常与 LLVM 的后端一起使用,LLVM 提供代码优化和目标代码生成等功能。

Clang/LLVM 通常使用 Make 作为构建工具。

仅支持 macOS。

MinGW

MinGW是 GCC 在 Windows 平台上的一个移植版本,提供了一组 GNU 工具,包括 GCC 编译器、GNU binutils(包含汇编器、链接器等)以及其他必要的工具,MinGW 通常与 MSYS(Minimal System)或 MSYS2 结合使用,后者提供了一个类似 Unix 的 shell 环境,使得在 Windows 上可以使用 GNU 工具链进行开发。

MinGW使用自带Make作为构建工具。

仅支持 Windows。

MSVC

MSVC是微软的 C++ 编译器,是 Visual Studio IDE 的一部分。

MSVC 与 Visual Studio 集成紧密,提供了良好的 IDE 支持和调试功能。

Visual Studio 使用 MSBuild 作为构建工具。

仅支持 Windows。

编程语言/框架

不同编程语言使用的构建系统、构建工具、编译器等不尽相同,主流的有:

C、C++、Java、Python、Swift等。

集成开发环境(IDE)

集成开发环境(Integrated Development Environment,简称 IDE)是一种软件应用程序,它为程序员提供了一个统一的、多功能的平台,用于软件开发的各个阶段,从编写代码、调试到测试和部署。

常见的集成开发环境有:
6

VS Code本来是一个编辑器,本身并不自带编译器、链接器、调试器等工具,而是通过插件的方式外部调用系统已安装的工具进行实际开发。

应用示例

这里以C++/Qt为例,列举实际开发时所需环境:

Windows

环境①:

QMake + MSBuild/nmake + MSVC + Visual Studio/Qt Creator/VS Code

构建系统选择QMake,构建工具选择微软的MSBuild或nmake,编译器使用MSVC,IDE可选择VS、Qt Creator或VS Code。

环境②:

QMake + GNU Make + MinGW + Qt Creator/VSCode

构建系统选择QMake,构建工具选择GNU Make(GCC的Windows移植版),编译器使用MinGW,IDE可选择Qt Creator或VS Code。

环境③:

CMake + MSBuild/nmake + MSVC + Visual Studio/Qt Creator/VS Code/CLion

构建系统选择CMake,构建工具选择微软的MSBuild或nmake,编译器使用MSVC,IDE可选VS、Qt Creator、VS Code或CLion。

CLion对QMake的支持不太好,因此使用CMake的项目才考虑使用。

环境④:

CMake + GNU Make + MinGW + Qt Creator/VS Code/CLion

构建系统选择CMake,构建工具选择GNU Make(GCC的Windows移植版),编译器使用MinGW,IDE可选Qt Creator、VS Code或CLion。

Linux

环境①:

QMake + Make + GCC + Qt Creator/VS Code/CLion

构建系统选择QMake,构建工具系统自带的Make,编译器使用GCC,IDE可选择Qt Creator或VS Code。

环境②:

CMake + Make + GCC + Qt Creator/VS Code/CLion

构建系统选择CMake,后续选择同①。

通用

至此可以确定较为通用的环境如下:

构建系统:CMake 或 QMake

构建工具:Make(Windows有移植版)

编译器:GCC(Windows有移植版MinGW)

IDE:Qt Creator、CLion、VS Code

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

相关文章:

  • 建网站做cpa网页设计成品源代码
  • 记事本做网站怎么调整图片间距武汉疫情最新情况
  • 百度网站建设多钱如何制作网站二维码
  • 电子商务网站建设实验谷歌chrome安卓版
  • 在哪个网站可以一对一做汉教广州seo代理
  • 帮别人做网站怎么备案免费建站网站一级
  • wordpress首页轮换图片在哪里设置济南优化网页
  • 创建了一个网站 怎样做系统测试鄞州seo服务
  • wordpress archive模板刷关键词排名seo软件软件
  • 营销型网站建设调查表seo优化外包顾问
  • 广西建设厅官网站外链工具
  • 带有后台的网站开发软件南京关键词优化服务
  • php做网站页面在哪做网络营销整合推广
  • 网上工伤做实网站抖音关键词优化
  • 西城做网站培训心得简短50字
  • vs做的网站如何晚上国网app
  • 规范机关单位网站建设最好的推广平台排名
  • 做网站的工具+论坛百度论坛
  • 郑州区块链数字钱包网站开发周期整站优化要多少钱
  • 做外贸仿牌网站广东网站seo策划
  • 无许可证做新闻网站会怎么样关键词林俊杰在线听免费
  • 网站外部链接行者seo
  • 深圳的网站建设影响seo排名的因素
  • ciid中国室内设计大奖赛aso优化平台有哪些
  • 自己做的网站怎么发布事件营销的经典案例
  • 网站建立必备的操作内容今日世界杯比分预测最新
  • 1150网站建设服务器主板优化方法
  • 旅游网站开发代码搜索引擎技术基础
  • 中国东凤网站制作广州网站建设
  • 网站开发要写代码吗大一html网页制作