Windows shell环境: 从git bash切换到msys2

这篇具有很好参考价值的文章主要介绍了Windows shell环境: 从git bash切换到msys2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Windows shell环境: 从git bash切换到msys2

1. 目的

想在 Windows 下编译一些 C++ 工程, 依赖库没有提供 CMake 支持,手动编译则需要递归编译所有依赖库, 过程预计比较复杂容易失败, 考虑使用预编译库。由于 GnuWin32 系列的预编译库普遍版本较低, 无法满足原本要编译的 doxygen 工程中的需求, 考虑使用 msys2 提供的预编译库, 如 bison 和 flex, 版本都很新。

使用 msys2 意味着需要删除 git bash, 原因是 git for windows 是基于 msys2 的, 两者都装容易冲突。 安装 msys2 后可以用包管理工具 pacman 安装 git.

2. msys2 环境 (Environment)

msys2 提供了不同的环境/子系统,使用 msys2 的第一件事是决定使用哪个环境/子系统。不同的 msys2 环境,差别在于:环境变量、默认的编译器和链接器、架构、系统库等。如果不确定, 那就用 UCRT64.

MSYS 环境包含了类 unix、基于 cygwin 的工具, 放在 /usr 目录, 并且是一直可以使用的。其他的环境则是在 MSYS 环境基础上增加内容得到的。

Windows shell环境: 从git bash切换到msys2

比如说, 在 UCRT64 环境中 $PATH 变量以 /ucrt64/bin:/usr/bin 开始, 意味着除了可以用 msys 系列的工具, 还可以使用所有基于 ucrt64 的工具。

切换不同的 msys 环境: 修改 MSYSTEM 环境变量即可(尝试了 export, 不过没生效);还有一种土方法,在开始菜单输入 MSYS2 然后选择需要的 Environment 对应的 shell:

Windows shell环境: 从git bash切换到msys2
关于GCC和LLVM/Clang

Windows shell环境: 从git bash切换到msys2
GCC 相关的测试比较充分,LLVM 的一大特点则是 ASan 支持(疑问:GCC 不带 ASan 吗?)。稳妥起见先用 GCC 的。

关于C RunTime library: MSVCRT vs UCRT

Windows shell环境: 从git bash切换到msys2

UCRT 比较新,可以当 MSVCRT 用。

3. 升级 MSYS2: 使用 pacman 滚动式升级整个系统

MSYS2 使用 pacman 作为包管理工具, 继承了 archlinux 下的滚动式升级特性。

更新所有包

pacman -Suy

Windows shell环境: 从git bash切换到msys2
包缓存目录

/var/cache/pacman/pkg 目录存放了缓存的包, 例如我的
Windows shell环境: 从git bash切换到msys2
可以定期手动删除包,减少硬盘占用。

4. 在 Windows Terminal 中增加显示 MSYS2

https://www.msys2.org/docs/terminals/

// 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
      }
    },
    // ...
  ]
}

Windows shell环境: 从git bash切换到msys2

5. 使用 zsh

pacman -S zsh

Windows shell环境: 从git bash切换到msys2
继续修改 Windows 终端中的 json 文件,加入参数 -shell zsh

Windows shell环境: 从git bash切换到msys2
安装git

pacman -S git

Windows shell环境: 从git bash切换到msys2
安装git后,可以安装 oh-my-zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Windows shell环境: 从git bash切换到msys2

6. VSCode 中的配置

增加 MSYS2 终端

目的是在 VSCode 中按 Ctrl+J 时, 可以选择 MSYS2 终端, 就像 Git Bash 那样。
方法是 Ctrl + Shift + P 改 settings.json, 加入

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

explorer 右键使用 MSYS UCRT64 打开

保存如下内容为 msys2_ucrt64.reg,注意检查和你的路径是否一致。双击运行。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\ucrt64]
@="UCRT64 Here"
"icon"="D:\\soft\\msys64\\ucrt64.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\ucrt64\command]
@="D:\\soft\\msys64\\msys2_shell.cmd -here -no-start -ucrt64"

配置 git 路径

直接在 Settings.json 里加入 git.exe 的路径,会报错:
Windows shell环境: 从git bash切换到msys2
修改方法是在 git.exe 所在的 D:/soft/msys64/usr/bin/ 目录, 创建 git-wrap.bat 文件,然后 settings.json 用这个wrapper:
Windows shell环境: 从git bash切换到msys2

7. 安装 C/C++ 依赖库

以 bison 和 flex 为例

pacman -S bison flex

Windows shell环境: 从git bash切换到msys2
Windows shell环境: 从git bash切换到msys2
Windows shell环境: 从git bash切换到msys2
Windows shell环境: 从git bash切换到msys2

安装 ag

注意要安装带 ucrt 的,这样才能在 MSYS2 UCRT 里用

pacman -S mingw-w64-ucrt-x86_64-ag

如下的,无法使用:

pacman -S the_silver_searcher

查询 bison 和 flex 的安装目录

pacman -Ql bison | ag 'lib'

Windows shell环境: 从git bash切换到msys2文章来源地址https://www.toymoban.com/news/detail-494546.html

8. References

  • https://www.cnblogs.com/52fhy/p/15158765.html
  • https://www.msys2.org/docs/

到了这里,关于Windows shell环境: 从git bash切换到msys2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows下msys2编译64位的ffmpeg源码

    目前遇到过两次需求,需要编译ffmpeg源码。网上下载的编译好的源码里面可能不全,很多时候需要自行编译源码。本文介绍自行编译ffmpeg64位源码(32位通过相似的方式为编译成功,不知道原因) 环境: 2023.5.4下载的最新版msys2 ffmpeg 4.3.2源码 windows操作系统 首先需要msys2软件和

    2024年02月03日
    浏览(42)
  • 特别篇 VSCode+MSYS2 更好的开发环境搭建!

    想必,凡是参与过NOI系列赛事的,都对下面的图很熟悉: 没错,它就是 Dev-C++ ,NOI系列比赛Windows环境制定软件,但它在日常刷题过程中体验 相当不好 ,几乎没有的高亮显示,陈旧的编译器…… 因此,我们是时候配置一个更好的代码编辑平台了! 一方面,你应该确保你自身

    2024年04月08日
    浏览(75)
  • 2023最新Windows编译ffmpeg详细教程,附msys2详细安装配置教程

    msys2是一款跨平台编译套件,它模拟linux编译环境,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译运行。 类似的跨平台编译套件有: msys , cygwin , mingw 优势: 相对于 cygwin 和 msys 等环境,它支持 pacman 包管理器,这意味着你可以很方便的安装所

    2024年02月13日
    浏览(42)
  • 解决 MSYS2 Qt 6.7 默认 stylesheet 在 windows 11 下的显示故障

    MSYS2 升级到 Qt6.7.0,发现显示故障,所有Qt6程序以及 QtCreator的SpinBox都显示不全,Combox的底色不对。 2024年4月1日,pacman升级MSYS2后,Qt6遇到风格错误。如果使用官方的 Qt online installer,则Qtcreator毫无问题(它使用6.6 而不是 6.7 编译),但是使用Qt 6.7 的app还是有问题。 msys环境:

    2024年04月14日
    浏览(59)
  • windows + Mingw32-make 编译 PoDoFo库,openssl, libjpeg, Msys2工具的使用

    参考: https://blog.csdn.net/sspdfn/article/details/104244306 https://blog.csdn.net/yaoyuanyylyy/article/details/17436303 https://blog.csdn.net/wxlfreewind/article/details/106492253 前期进行了各种摸索,由于Podofo依赖库比较多,所依赖的库都需要编译为Mingw版本,参考以上三篇博客,因为环境原因一直出现各种问题

    2024年02月06日
    浏览(69)
  • msys2安装与配置: 在windows上使用linux工具链g++和包管理工具pacman C++开发

    方便windows上的C++开发demo,不需要VS了 方便C++开发安装opencv等三方库 有了这个就不需要另外安装git, cmake, mingw64了,都可以通过pacman包管理工具一键安装 官网 https://www.msys2.org/ 官方文档 https://www.msys2.org/docs/terminals/ github https://github.com/msys2/msys2-installer/releases/ 根据github readme中的

    2024年02月11日
    浏览(40)
  • 83、SpringBoot --- 下载和安装 MSYS2、 Redis

    启动redis服务器: 打开小黑窗: C:UsersJHe: E:cd E:installRedis6.0Redis-x64-6.0.14bin E:installRedis6.0Redis-x64-6.0.14binredis-server.exe redis.windows.conf 启动redis客户端: 小黑窗:redis-cli 直接官网下载最新的版本 msys2官网 因为在安装的时候一直卡在50%,弄了很久都不行,后面断网安装,一下

    2024年02月07日
    浏览(38)
  • 在 msys2/mingw 下安装及编译 opencv

    最简单就是直接安装 脚本中最好使用环境变量 ${MINGW_PACKAGE_PREFIX} 适配 以下记录一下编译的过程 注意:一定要安装 mingw-w64-x86_64-cmake  而不是 cmake,即不要执行 “pacman -S cmake” 否则会产生 “System is unknown to cmake, create 。。。” 报错信息 下载 opencv4 源码并解压  编写脚本

    2024年02月06日
    浏览(87)
  • windows系统用git bash激活conda虚拟环境

    1.进入到./anaconda/Scripts目录,右击鼠标,选择git bash here 2.输入以下代码,激活conda虚拟环境         source activate         conda activate vir_name 3.进入项目地址         cd 项目地址 4.执行sh文件         bash xx.sh  

    2024年02月03日
    浏览(44)
  • windows 在git bash 中激活conda python 虚拟环境

    直接进入conda安装位置中的scripts文件夹下面,然后右键git bash here,之后在弹出的窗口中输入source activate即可进入base环境 之后就可以使用  conda activate 虚拟环境名 参考 http://t.csdn.cn/NCkZR的一条评论

    2024年02月07日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包