[INSTALL] MSYS2 -- Windows下的类Linux环境

2024-09-07 02:04

本文主要是介绍[INSTALL] MSYS2 -- Windows下的类Linux环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、安装

1. 从https://www.msys2.org/ 下载安装msys2
也可以从镜像: http://mirrors.aliyun.com/msys2/distrib/x86_64/ 下载最新的安装包 msys2-x86_64-20230718.exe

2. 更新下载源为阿里云
sed -i "s#https\?://mirror.msys2.org/#http://mirrors.aliyun.com/msys2/#g" /etc/pacman.d/mirrorlist*
然后通过  pacman -Syyu 更新一下软件包列表

注意: msys2有多个发行版本,包括mingw32,mingw64,ucrt64,lang32,lang64等等。由于我们选择gcc,以及系统都是win10以上,所以我们选择ucrt64这个发行版本。

3.安装开发环境
可以通过  pacman -Ss <name or part of the name of the package>  来查询有哪些包。
可以通过  pacman -Ql package_name 来查看某个安装的包的具体文件
可以通过  pacman -Rsn package_name 来删除某个安装的包的具体文件,包括依赖
通过 pacman -S  make   安装make
通过 pacman -S  mingw-w64-ucrt-x86_64-gcc   安装gcc
通过 pacman -S  libpcap-devel     安装libpcap的开发环境
通过 pacman -S  mingw-w64-ucrt-x86_64-libpcap     安装libpcap的开发环境
通过 pacman -S  mingw-w64-ucrt-x86_64-cjson  安装cjson

二、使用

        如果是使用makefile编译,在msys2的窗口中进入你平时编译的文件路径,正常使用make编译即可。

        如果是简单代码使用gcc编译,也是直接进入源码程序的文件夹,使用gcc命令编译即可。 

三、作用

        使用 msys2 可以生成在 windows 环境下运行的可执行文件.exe。 

四、说明

         MSYS2(Minimal SYStem for Windows)是一个用于 Windows 环境下的软件开发平台,它为 Windows 用户提供了一个类似于 Unix 的命令行环境,从而使得开发者能够在 Windows 上轻松地进行跨平台开发。MSYS2 包括了三个主要组件:MSYS、MINGW 和 MINGW-w64。MSYS 是一个基于 Cygwin 的 Bash shell 环境,提供了许多 Unix 工具和命令;MINGW 和 MINGW-w64 则是用于编译 Windows 本地可执行文件的 GNU 工具链。

        MSYS2 的主要优势在于它能够简化跨平台开发流程。对于需要在 Windows 系统上进行 C/C++ 开发的用户来说,MSYS2 提供了一个熟悉的开发环境,使得开发者无需离开 Windows 就可以使用 GNU 工具链来构建和调试应用程序。此外,MSYS2 还提供了一个包管理系统,基于 Arch Linux 的 Pacman 包管理器,这使得安装和管理各种开发工具、库和其他依赖变得非常简单。

        通过 MSYS2,开发者可以在 Windows 上创建、编译和运行适用于 Windows 的应用程序。这对于那些需要同时支持 Windows 和 Unix-like 系统的应用程序尤其有用。MSYS2 支持 32 位和 64 位的 Windows 系统,并且可以用来构建针对不同架构(如 x86 和 x86_64)的可执行文件。此外,MSYS2 还支持多版本的 GCC 编译器,可以根据项目的具体需求选择合适的版本进行编译。

        对于开源项目和商业软件开发而言,MSYS2 是一个强大的工具,因为它不仅简化了 Windows 环境下的开发流程,还促进了跨平台软件的开发。开发者可以使用 MSYS2 来构建跨平台的应用程序,确保软件能够在不同的操作系统上运行良好。此外,MSYS2 还支持使用 CMake、Autotools 等现代构建系统,这使得项目管理和构建过程更加灵活和高效。

4.1 组成部分

        MSYS (Minimal SYStem): MSYS 是一个基于 Cygwin 的工具集,但它比 Cygwin 更轻量级。它提供了一个 POSIX 兼容的 shell 环境,允许用户在 Windows 上运行传统的 Unix 工具和脚本。MSYS2 包括两个主要的 shell 环境:MSYS2 和 MSYS2 UCRT(基于 UCRT 的版本)。

        MINGW (Minimalist GNU for Windows): MINGW 是一组 GNU 工具的 Windows 端口,包括编译器、链接器和其他开发工具。这些工具可以直接生成针对 Windows 的可执行文件,而不需要额外的模拟层。MINGW 的主要目的是提供一个轻量级的开发环境,使得用户可以在 Windows 上编译本地的 Windows 应用程序。

        MINGW-w64: MINGW-w64 是 MINGW 的一个扩展,增加了对 64 位 Windows 的支持,并改进了对 C++ 标准的支持。它包括了 GCC 编译器以及其他常用的开发工具,如 GDB 调试器。

4.2 功能

        包管理: MSYS2 使用 pacman 作为包管理器,类似于 Arch Linux 的包管理系统。你可以通过 pacman 安装各种软件包,包括编译工具、库文件、开发工具等。

        构建工具: MSYS2 集成了许多构建工具,如 makeautotoolscmake 等,使得在 Windows 上进行软件开发变得更加容易。

        跨平台编译: 除了可以在 Windows 上编译 Windows 程序外,MSYS2 还可以用来编译跨平台的应用程序,例如从 Linux 源代码编译 Windows 可执行文件。

        Shell 环境: MSYS2 提供了一个类似于 Linux 的命令行环境,使得熟悉 Linux 的用户可以无缝地过渡到 Windows 开发环境。

这篇关于[INSTALL] MSYS2 -- Windows下的类Linux环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1143745

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads