【研发】研发常用软件工具说明

研发常用软件工具说明

摘要

针对软件研发人员的常用软件工具,进行阐释说明。



零、


一、Linux/Unix操作系统平台相关

Linux/Unix相关软件工具,并不意味着这些软件工具只能运行在Linux/Unix操作系统平台上,包括那些为了跨操作系统平台的便利性而开发的软件工具,如CygWin(及其升级版MSYS/MSYS2)、MinGW、WSL等。

1.1 Windows操作系统中搭建Linux/Unix平台环境

Cygwin

官网https://www.cygwin.com/

Get that Linux feeling - on Windows。

Cygwin is:

  • a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
  • a DLL (cygwin1.dll) which provides substantial POSIX API functionality.

Cygwin is not:

  • a way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows.
  • a way to magically make native Windows apps aware of UNIX® functionality like signals, ptys, etc. Again, you need to build your apps from source if you want to take advantage of Cygwin functionality.

MSYS/MSYS2——Minimal SYStem

Software Distribution and Building Platform for Windows.

Minimal GNU(POSIX)system on Windows。

官网https://www.msys2.org/

MSYS2 is a collection of tools and libraries providing you with an easy-to-use environment for building, installing and running native Windows software.

MSYS2 isn’t “one tool to rule them all”, but tries to focus on what it’s good at. It provides a native build environment, based on open source software, and makes you feel right at home when you are already comfortable with Linux. There are good reasons to use multiple different environments and tools for different tasks on Windows.

MSYS2 vs Other Projects

In case you’d like to see more comparisons or feel that they could be improved please let us know.

MSYS2 vs WSL

MSYS2 allows you to build native Windows programs, while with WSL you can only cross compile them which makes things more complicated. If you are just looking for Linux CLI tools, or want to build software that ends up on a Linux server anyway then WSL is the better choice.

MSYS2 vs Chocolatey

Chocolatey mainly bundles already built (open and closed source) software and makes it easy to install/update them. In MSYS2 on the other hand all packages are built from source and you can easily reproduce the builds on your machine. Chocolatey packages have the advantage that the bundled installers usually have better Windows integration, in that they set up file associations, shortcuts, etc. and because they are not built from source there are also lots of packages for closed source software like Visual Studio etc. that would be hard to manage/update otherwise.

MSYS2 vs Cygwin

The unixy tools in MSYS2 are directly based on Cygwin, so there is some overlap there. While Cygwin focuses on building Unix software on Windows as is, MSYS2 focuses on building native software built against the Windows APIs.

MSYS2 vs Arch Linux

MSYS2 and Arch Linux share the package manager and all that comes with it, like build definitions, rules for how to package things, how updates work, how packages are signed, how packages are shipped, the rolling release nature and so on. By re-using this functionality and concepts we can focus on the actual packages and profit from the experience and work of Arch Linux developers. Users already familiar with Arch Linux will also have an easier time getting started.

MSYS2 vs Scoop

Due to lack of experience with scoop see their comparison page:

  • https://github.com/lukesampson/scoop/wiki/Chocolatey-Comparison
  • https://github.com/lukesampson/scoop/wiki/Cygwin-and-MSYS-Comparison

WSL——Windows Subsystem for Linux

适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。

WSL 是一个开放源代码工具,提供可供下载和贡献的源代码:

可参考:https://learn.microsoft.com/zh-cn/windows/wsl/install

虚拟机Virtual Machine软件工具——如VirtualBox、VMware

VirtualBox和VMware都是本地个人计算机PC端部署虚拟机的软件工具,前者是开源免费软件,后者是商用付费软件。


1.2 Linux/Unix平台下编译器

1.2.1 LLVM——Low-Level Virtual Machine项目

官网https://www.llvm.org/

LLVM是一个伞形/综合性项目an umbrella project,该项目是模块化可重用的编译器及其工具链技术的集合。LLVM与传统虚拟机关系不大,尽管它曾经是一个首字母缩略词,但现在它不再是一个首字母缩写,而只是该一揽子项目的品牌名。

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines. The name “LLVM” itself is not an acronym; it is the full name of the project. The name “LLVM” was once an acronym, but is now just a brand for the umbrella project.

在经典的编译器设计中,传统静态编译器(像大多数C编译器一样)最流行的设计是采用三段式设计,由前端、优化器、后端三个主要组件构成The most popular design for a traditional static compiler (like most C compilers) is the three phase design whose major components are the front end, the optimizer and the back end,如下图:

[Three Major Components of a Three-Phase Compiler]

三段编译器的三个主要组件

这种经典三段式设计的隐含意思是,当我们决定某个编译器支持多种源语言或目标架构时,这种经典设计的最重要赢面/胜利就来了,若编译器在其优化器中使用通用代码表示,那么可以为任意语言编写(能够编译源语言它本身的)一个前端,并且可以为任何目标编写(能够由源语言编译出目标的)一个后端The most important win of this classical design comes when a compiler decides to support multiple source languages or target architectures. If the compiler uses a common code representation in its optimizer, then a front end can be written for any language that can compile to it, and a back end can be written for any target that can compile from it,如下图:

[Retargetablity]

重新定位调整能力下的新架构

Clang

官网https://clang.llvm.org/

Clang是一个针对LLVM项目的C语言家族(C/C++、MSVC即Microsoft Visual C++、Objective-C/C++、OpenCL、CUDA等)的开源编译器前端Clang is a C language family frontend for LLVM,它是LLMVM编译器基础设施项目的一部分,它能提供大量超过GCC编译器的功能特性。

Clang project provides a language front-end and tooling infrastructure for languages in the C language family (C, C++, Objective C/C++, OpenCL, and CUDA) for the LLVM project. Both a GCC-compatible compiler driver (clang) and an MSVC-compatible compiler driver (clang-cl.exe) are provided. Clang is a C/C++/Objective-C compiler which provides a number of benefits over the GCC compiler.


二、Windows操作系统平台相关

2.1 Windows平台下编译器

Visual Studio

ToBeComplemented


三、

ToBeComplemented


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值