msys2安装与配置: 在windows上使用linux工具链g++和包管理工具pacman C++开发

news2025/2/2 18:54:29

文章目录

    • 为什么用这个msys2
    • 下载、doc
    • 安装,很简单
    • 初次运行,做些配置
    • 更新
    • 软件安装与卸载方法
    • 安装必要的软件包
    • 设置win环境变量
    • 在windows terminal中使用
    • 在vscode中使用

为什么用这个msys2

  • 方便windows上的C++开发demo,不需要VS了
  • 方便C++开发安装opencv等三方库
  • 有了这个就不需要另外安装git, cmake, mingw64了,都可以通过pacman包管理工具一键安装

下载、doc

官网 https://www.msys2.org/
官方文档 https://www.msys2.org/docs/terminals/
github https://github.com/msys2/msys2-installer/releases/

  • 根据github readme中的说明,也许自解压包是个更好的选择(更加干净)
    在这里插入图片描述

这个msys2更新还挺活跃的,最新是2023.5.26版本, 软件本体只有84M,nice

安装,很简单

双击安装。安装过程基本上就是在解压,安装过程信息如下:到最后Updating trust database…的时候可能会卡住,此时进度50%,等着,或者尝试翻墙

正在准备安装…

正在准备解压组件......

正在解压组件......
正在提取“20230526msys64.7z”
已完成

正在安装组件 MSYS2
Copying skeleton files.
These files are for the users to personalise their msys2 experience.

They will never be overwritten nor automatically updated.


'./.bashrc' -> '/home/username2/.bashrc'
'./.bash_logout' -> '/home/username2/.bash_logout'
'./.bash_profile' -> '/home/username2/.bash_profile'

'./.profile' -> '/home/username2/.profile'

'C:\windows\system32\drivers\etc\hosts' -> '/etc/hosts'

'C:\windows\system32\drivers\etc\protocol' -> '/etc/protocols'

'C:\windows\system32\drivers\etc\services' -> '/etc/services'

'C:\windows\system32\drivers\etc\networks' -> '/etc/networks'

==> Generating pacman master key. This may take some time.

==> Updating trust database...

==> Appending keys from msys2.gpg...

==> Locally signing trusted keys in keyring...

  -> Locally signed 5 keys.
==> Importing owner trust values...
==> Disabling revoked keys in keyring...

  -> Disabled 4 keys.
==> Updating trust database...

[H[2J[3J
已完成
编写维护工具。

安装已完成!

初次运行,做些配置

安装之后有好几个终端环境,推荐使用的、默认打开的是ucrt64.exe,我这里也用这个,任务栏是这样的:
在这里插入图片描述

配置如下(这里刚开始,用Notepad++等编辑器编辑就行):

  • 修改home目录为C:/Users/username这个win目录
    • 配置文件 /etc/nsswitch.conf
    • 修改:db_home: windows cygwin desc
    • 修改后最好把安装位置/home/user/下的配置文件靠背到win home下,比如.bashrc啥的
    • 修改后重新打开终端生效,可pwd查看路径
  • 更换为国内源
    • 配置文件 /etc/pacman.d/下的
    • 修改:
      • db_home: windows cygwin desc各个mirrorlist文件,没必要都修改,修改你需要用的环境即可。比如我用ucrt64则只需修改: mirrorlist.msys, mirrorlist.ucrt64
      • 如何修改:把下面的国内源挪到上面,修改后应该是直接生效的
        在这里插入图片描述
  • 关闭不需要的软件源搜索结果:
    • 配置文件 /etc/pacman.conf

    • 修改:翻到最下面,把不需要的环境注释掉:

      # [clangarm64]
      # Include = /etc/pacman.d/mirrorlist.mingw
      # 
      # [mingw32]
      # Include = /etc/pacman.d/mirrorlist.mingw
      # 
      # [mingw64]
      # Include = /etc/pacman.d/mirrorlist.mingw
      
      [ucrt64]
      Include = /etc/pacman.d/mirrorlist.mingw
      
      # [clang32]
      # Include = /etc/pacman.d/mirrorlist.mingw
      # 
      # [clang64]
      # Include = /etc/pacman.d/mirrorlist.mingw
      
      [msys]
      Include = /etc/pacman.d/mirrorlist.msys
      
      

更新

pacman -Syyu,因为已经换源了,速度会挺快
会自动刚更新msys软件本体,和安装过的软件包。如果不想更新某个软件包,可以在配置文件设置。

  • 包管理工具是pacman, 也就是arch linux和manjaro linux的包管理工具,所以有问题搜索的时候可以参考这两个发行版的解决方案

软件安装与卸载方法

  • 一般的安装命令:pacman -S 软件包名 进行安装
  • 卸载命令:pacman -Rs 软件包名
  • 如何知道完整包名:pacman -Ss 包名关键词,比如vim
    • pacman -Ss vim 下图就搜索到了两个,前面粉红色的是环境tag,优先安装ucrt64的(尤其是g++,cmake啥的编译工具链最好用ucrt64),但我不想用neovim就选下面的msys那个vim了,红线就是完整包名,安装即可pacman -S vim 在这里插入图片描述

安装必要的软件包

  • 安装编译工具链:pacman -S mingw-w64-ucrt-x86_64-toolchain

    • 这里面包含很多东西,gcc, g++, make等都有了
    • 修改mingw32-make.exe文件名为make.exe
      • cd /ucrt64/bin
      • ln -s mingw32-make.exe make.exe
  • 安装cmake: pacman -S mingw-w64-ucrt-x86_64-cmake

  • 安装git: pacman -S git

  • 安装其他需要的软件

设置win环境变量

上面安装的东西,可执行文件一般在/ucrt64/bin/usr/bin/下,把这两个加到系统PATH即可(注意顺序)

在windows terminal中使用

官方doc https://www.msys2.org/docs/terminals/

修改windows terminal的配置json, 注意修改路径为你的安装位置

// This makes UCRT64 the default shell
"defaultProfile": "{17da3cac-b318-431e-8a3e-7fcdefe6d114}",
"profiles": {
  "list":
  [
    // ...
    {
      "guid": "{17da3cac-b318-431e-8a3e-7fcdefe6d114}",
      "name": "UCRT64 / MSYS2",
      "commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -ucrt64",
      "startingDirectory": "C:/msys64/home/%USERNAME%",
      "icon": "C:/msys64/ucrt64.ico",
      "font": 
      {
        "face": "Lucida Console",
        "size": 9
      }
    },
    {
      "guid": "{71160544-14d8-4194-af25-d05feeac7233}",
      "name": "MSYS / MSYS2",
      "commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -msys",
      "startingDirectory": "C:/msys64/home/%USERNAME%",
      "icon": "C:/msys64/msys2.ico",
      "font": 
      {
        "face": "Lucida Console",
        "size": 9
      }
    },
    // ...
  ]
}

在vscode中使用

官方文档 https://www.msys2.org/docs/ides-editors/

如下内容添加到vscode的settings.json, 注意修改路径为你的安装位置

{
    "terminal.integrated.profiles.windows": {
        "MSYS2 UCRT": {
            "path": "cmd.exe",
            "args": [
                "/c",
                "C:\\msys64\\msys2_shell.cmd -defterm -here -no-start -ucrt64"
            ]
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/762415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis缓存更新策略以及常见缓存问题

文章目录 一、什么是缓存?二、添加Redis缓存三、缓存更新策略四、缓存穿透五、缓存雪崩六、缓存击穿七、缓存工具封装 一、什么是缓存? 缓存就是数据交换的缓冲区(Cache),是存储数据的临时地方,一般读写性能较好,常见…

Mac环境配置(Java)----使用bash_profile进行配置

1、打开软件--终端 2、首先查看本机Java的安装地址(系统默认的) /usr/libexec/java_home -V 查看到Java8安装的路径如下: 3、如果是第一次配置环境变量,使用命令:【touch .bash_profile】创建一个.bash_profile隐藏…

多表查询例题

目录 创建学生表 创建分数表 查看表结构 向两张表插入数据 1.查间student表的昕有记录 ​2.查间student表的第2条到4条记录 ​3.从student表查间所有学生的学号(id)、姓名(name)和院系(department)的信息 ​4.从student表中查间计算机系和英语系的学生的信息 ​5.从stu…

免费nas diy

安装Debian11 * 安装时选择ssh-server服务 * 安装时选中non-free contrib 还有bullseye-backports non-free 可以安装闭源驱动 bullseye-backports 可以更新内核 安装完成后,编辑/etc/apt/sources.list文件,关闭光驱源 并 切换到国内源 安装新内核6.1,重启后,可以移除老内…

监控指标111

P95、P99.9百分位数值——服务响应时间的重要衡量指标 开发技术 开发技术 2021-02-01 388次浏览 前段时间,在对系统进行改版后,经常会有用户投诉说页面响应较慢,我们看了看监控数据,发现从接口响应时间的平均值来看在500ms左右&…

数据结构--线性表以及其顺序存储结构

这里写目录标题 线性表的定义和特征定义特征 案例引入稀疏多项式链表实现多项式相加小结 线性表的类型定义(抽象数据类型)定义格式基本操作小结 线性表的顺序表示和实现实现1顺序存储表示顺序表中元素存储位置的计算 实现2顺序表的优点问题出现结构体表示…

你需要跟踪分析产品知识库的哪些关键数据

当你拥有一个产品知识库时,了解如何跟踪和分析关键数据指标是非常重要的。这些数据可以提供有关知识库使用情况、用户行为和满意度的宝贵见解。 在本文中,我们将探讨你需要跟踪的几个重要数据指标,以帮助你优化和改进产品知识库的效果和价值。…

大语言模型评估全解:评估流程、评估方法及常见问题

编者按:随着对大语言模型(LLM)评估领域的深入研究,我们更加清楚地认识到全面理解评估过程中的问题对于有效评估LLM至关重要。 本文探讨了机器学习模型评估中出现的常见问题,并深入研究了LLM对模型评估领域带来的重大挑…

Blazor 自定义可重用基础组件之 Dialog (Bootstrap Modal)

对话框是常用的组件之一,可以提供信息提示,也可以设置表单录入数据等。但是,Bootstrap Modal需要JS互操作,这个不太懂,只能绕过。这里没有一句JS代码,非常好用。 以下是具体代码: &#xfeff…

Drools用户手册翻译——第三章 构建,部署,应用和运行(六)剩余部分

终于是把这一章给看完了,看完也有点懵,需要重新梳理实践一下,最主要是概念有些多,不过还好,多用一用就明白了。 甩锅声明:本人英语一般,翻译只是为了做个笔记,所以有翻译错误的地方…

SciencePub学术 | 物联网类重点SCIEEI征稿中

SciencePub学术 刊源推荐: 物联网类重点SCIE&EI征稿中!CCF推荐,对国人友好!信息如下,录满为止: 一、期刊概况: 物联网类重点SCIE&EI 【期刊简介】IF:7.0-7.5,JCR1区&#…

算法训练营第四十一天||● 343. 整数拆分 96.不同的二叉搜索树

● 343. 整数拆分 这道有难度,不看题解肯定 想不到用动态规划,看了题解后能大概明白,但还不是很清晰,不太明白递推公式中强调的与dp[i]还要比较一次,也不明白第一次去最大最的那个比较 需要后面继续看 动规五部曲&a…

深度强化学习落地方法论训练篇:PPO、DQN、DDPG、学习率、折扣因子等

为了保证 DRL 算法能够顺利收敛,policy 性能达标并具有实用价值,结果有说服力且能复现,需要算法工作者在训练前、训练中和训练后提供全方位一条龙服务。我记得 GANs 刚火起来的时候,因为训练难度高,有人在 GitHub 上专门开了 repository,总结来自学术界和工业界的最新训练…

麦穗检测Y8S

采用YOLOV8训练,得到PT模型,然后直接转ONNX,使用OPENCV的DNN,不需要其他依赖,支持C/PYTHON 麦穗检测Y8S

CodeGeex论文阅读

《CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Evaluations on HumanEval-X》 论文地址:https://arxiv.org/pdf/2303.17568.pdf 代码地址:https://github.com/THUDM/CodeGe 一、简介 CodeGeeX,是一个具有130亿…

<数据结构>NO10.快速排序|递归|非递归|优化

文章目录 快速排序递归实现快速排序hoare版本DigHole版本前后指针版本 非递归实现快速排序算法优化1. 针对有序数组进行优化2. 针对全相等数组进行优化 算法分析时间复杂度空间复杂度 快速排序 快速排序(英语:Quicksort),又称分区…

0基础学习VR全景平台篇 第64篇:高级功能-自定义LOGO和密码访问

一、功能说明 VR视频的高级功能目前有两项,分别是自定义LOGO和密码访问。 二、后台编辑界面 1、自定义LOGO:支持JPG、PNG、GIF格式的图片,大小不超过5M,建议高度不超过500px,设置后显示在VR视频的左上角位置。 2、密…

Vue学习随堂记录

计算属性和监听器 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…

MobPush:Android SDK 集成指南

开发工具&#xff1a;Android Studio 集成方式&#xff1a;Gradle在线集成 安卓版本支持&#xff1a;minSdkVersion 19 集成准备 注册账号 使用PushSDK之前&#xff0c;需要先在MobTech官网注册开发者账号&#xff0c;并获取MobTech提供的AppKey和AppSecret&#xff0c;详情可…

《程序是怎样跑起来的》简介

目录 1. 前言2. 主要内容3. 总结 1. 前言 闲暇之余&#xff0c;读了一遍《程序是怎样跑起来的》这本书。颇感欣喜。借此机会分享一下。 本书可以这样定位&#xff1a; 对学生&#xff1a;作为专业课之前的开胃菜&#xff0c;非常合适&#xff0c;尤其是作为《计算机组成原理…