[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 rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更