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

这篇具有很好参考价值的文章主要介绍了msys2安装与配置: 在windows上使用linux工具链g++和包管理工具pacman C++开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么用这个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,windows,linux,c++

这个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,我这里也用这个,任务栏是这样的:
msys2,windows,linux,c++

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

  • 修改home目录为C:/Users/username这个win目录
    • 配置文件 /etc/nsswitch.conf
    • 修改:db_home: windows cygwin desc
    • 修改后最好把安装位置/home/user/下的配置文件拷贝到win home下,比如.bashrc啥的
    • 修改后重新打开终端生效,可pwd查看路径
  • 修改~/.bashrc
    • 使能够记录历史命令
      • 我发现按向上方向键不显示之前输入过的历史命令
      • 向~/.bashrc中添加一行:export PROMPT_COMMAND='history -a'
      • 相同的命令仅记录一次:export HISTCONTROL=ignoredups
    • 使编译的C++程序运行打印中文时不会乱码:
      • 向~/.bashrc中添加一行: chcp.com 65001
  • 更换为国内源
    • 配置文件 /etc/pacman.d/下的
    • 修改:
      • db_home: windows cygwin desc各个mirrorlist文件,没必要都修改,修改你需要用的环境即可。比如我用ucrt64则只需修改: mirrorlist.msys, mirrorlist.ucrt64
      • 如何修改:把下面的国内源挪到上面,修改后应该是直接生效的
        msys2,windows,linux,c++
  • 关闭不需要的软件源搜索结果:
    • 配置文件 /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 msys2,windows,linux,c++

安装必要的软件包

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

    • 这里面包含很多东西,gcc, g++, make等都有了
    • 关于make命令,官方文档有比较:make vs mingw32-make. 我这里直接链接mingw32-make.exe为make.exe
      • cd /ucrt64/bin
      • ln -s mingw32-make.exe make.exe
      • 我的mingw32-make.exe隶属于mingw-w64-ucrt-x86_64-make软件包,应该就是官方推荐的
        • 可通过pacman -Qo mingw32-make.exe查看
  • 安装cmake: pacman -S mingw-w64-ucrt-x86_64-cmake

  • 安装git: pacman -S git

    • Git文档:8.1 自定义 Git - 配置 Git
    • 如果你要在vscode中使用Source Control:VSCode msys2/git Source control无法识别git仓库:the folder currently open doesn‘t have a git rep
    • 如果你使用这个git之后检查原有git仓库的status发现中文文件名的文件出错,可修改export LANG="en_US.UTF-8"
    • 防止中文路径被转义:git config --global core.quotepath false
    • git diff时忽略行尾的^M回车符:
      # 忽略行尾的回车
      git config --global core.whitespace cr-at-eol  
      
      # (这两个在msys2/git环境中应该不用执行)
      # 提交时自动转换为换行,检出时保留对应系统的设置
      git config --global core.autocrlf true   # win上设置
      git config --global core.autocrlf input  # unix上设置
      
  • 安装其他需要的软件

设置win环境变量

  • 上面安装的东西,可执行文件一般在/ucrt64/bin/usr/bin/下,把这两个加到系统PATH即可(注意顺序),这样你在非msys2终端环境中也能使用这里安装的软件了,比如rm, vim啥的
  • 在msys2的终端环境中默认无法使用win环境变量的PATH, 有两种方式可以使用:
    • 方法1:在win环境变量中添加一个新变量MSYS2_PATH_TYPE,值为inherit
    • 方法2:通过安装位置的msys2_shell.cmd启动,并添加-full-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, 注意修改路径为你的安装位置文章来源地址https://www.toymoban.com/news/detail-673669.html

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

到了这里,关于msys2安装与配置: 在windows上使用linux工具链g++和包管理工具pacman C++开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Ai-WB2-32S在window下使用vs 和 msys2编译以及烧录

    应为电脑虚拟机不方便使用vs(有点卡),所以博主搜集了一些资料选择在windows下进行编译和烧录,过程虽然复杂,但是对于电脑配置不太高的用户挺友好的。 关于安装vscode博主就不献丑了,大家可以参考下面链接: vscode安装教程 关于msys2的安装,大家可以参考下面链接:

    2024年03月18日
    浏览(31)
  • windows下msys2编译64位的ffmpeg源码

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

    2024年02月03日
    浏览(30)
  • ffmpeg windows环境MinGW+msys2编译so库

    一定要把windows路径的\\\"“换成”/\\\" –prefix 配置安装路径参数 配置交叉编译参数 配置不需要生成相关工具 使用\\\"\\\"+enter可以换行输入多行参数

    2024年02月11日
    浏览(31)
  • Windows shell环境: 从git bash切换到msys2

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

    2024年02月09日
    浏览(55)
  • 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日
    浏览(27)
  • 解决 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日
    浏览(48)
  • 在 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日
    浏览(62)
  • LVGL学习笔记|Windows环境下模拟LittlevGL:VSCode+MSYS2+Cmake搭建模拟环境

    最近需要使用LittlevGL(以下简称lvgl)做ARM开发板的GUI,为了方便调试代码在网上搜集了部分在Windows环境下利用VSCode模拟仿真的环境配置步骤,现整理如下。 系统版本:Windows 10 专业版 21H2 直接使用国内镜像下载链接 : https://vscode.cdn.azure.cn/stable/b4c1bd0a9b03c749ea011b06c6d2676c8091

    2024年02月02日
    浏览(32)
  • 如何在Visual Studio、Clion、Msys2中安装和使用vcpkg

    首先事情是在安装了Msys2之后,想在Clion中使用安装在Msys2中的vcpkg。但是折腾了很久还是无法解决。于是就折腾出了这篇文章,和下一篇如何在Clion使用vcpkg的文章。 不过,由于我电脑上已近配置好了vcpkg以及环境变量,要是重新删除再搞特别麻烦,于是教程我使用msys2来掩饰

    2023年04月26日
    浏览(39)
  • 特别篇 VSCode+MSYS2 更好的开发环境搭建!

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

    2024年04月08日
    浏览(63)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包