首页 文章

如何将mingw-w64和MSYS2与eclipse或codeblocks等任何IDE一起使用?

提问于
浏览
3
  • 我用here安装msys2 .

  • 我从here下载 i686-5.3.0-release-posix-dwarf-rt_v4-rev0 .
    设置 msys2-i686-20160205.exe

  • ,在 C:\msys32 中解压缩 i686-5.3.0-release-posix-dwarf-rt_v4-rev0 .

  • 最后我从开始菜单运行 MinGW-w64 Win32 Shell 并分别运行这些命令:

  • pacman -Sy pacman

  • pacman -Syu

  • pacman -Su

  • 在PATH中添加 C:\msys32\mingw32\bin .

我的问题:

  • 使用任何IDE使用mingw-w64,这是真的吗?

  • MinGW-w64 Win32 ShellMSYS2 Shell 有什么区别?

提前致谢 .

2 回答

  • 1

    这里的前msys2和arch linux用户,目前在大学注册,课程使用代码块作为程序是否有效的标准指标,我想我可以在这里帮助你 .

    基本要点是你想要正常安装msys2,以及代码块,然后使用codeblocks设置将编译器设置为使用msys2的mingw-w64编译器 . 困惑了吗?它的整体非常简单 .

    • 安装代码块 . 使用已安装mingw的安装程序,我们稍后将从默认工具链中复制一些内容 .

    • 安装msys2(默认安装位置没问题, C:\msys64 代表64位,我认为 C:\msys32 代表32位;我们'll assume 64 bit for the rest of this guide). Take note of wherever you do install it, we'稍后需要它 .

    • 打开msys2 msys提示符

    • 更新msys2(两部分进程因为windows无法轻松交换使用中的文件) $ pacman -Syu ;它将更新一小部分可用包,并要求您关闭窗口 .

    • 完成msys2更新 $ pacman -Syu ;这次列表会更大 .

    • 安装 base-devel 包组 $ pacman -Syu base-devel ;它将提示您组中的包列表 . 你想跳过pacman本身,否则它会有同样的两部分更新 . 上次我检查了这个,pacman在列表中排名第39,所以你要安装 1-38,40-56 以安装什么(根据 $currentdate 提供的任何调整,它可能并不总是39) .

    • 安装一个mingw-w64工具链 pacman -Syu mingw-w64-x86_64-toolchain ,它会再次提示你选择了包,你想要它们所以只需点击回车即可 . 如果你想要32位工具链,你可以使用 pacman -Syu mingw-w64-i686-toolchain .

    • 打开代码块 . 如果这是您第一次运行,它将询问您有关文件关联和首选项等信息 . 设置你喜欢的那些 .

    • 在菜单栏中,单击设置 - >编译器 . 它应该默认为 GNU GCC Compiler . 在该设置下应该有一个按钮来复制它 . 为新的编译器配置文件提供一个描述性名称(我使用了 MSYS2 mingw-w64-x86_64 G++ . 它将提示您更新工具链可执行文件 .

    • 在编译器屏幕上,有一个名为 Toolchain executables 的选项卡,单击它 . 将 Compiler's installation directory 设置为安装msys2的位置为mingw64(对于64位工具链)或mingw32(对于32位工具链) . 假设默认安装位置和64位工具链,这应该是 C:\msys64\mingw64 .

    • 在此下方,更改 Program Files 下所有选项的名称以删除 mingw32- 前缀,但必须保留 mingw32-make.exeMake program 除外 . 其他所有东西都应该有扁平的名字( gcc.exeg++.exe 等) .

    • 可选:将此新编译器设置为默认值 . 您可以从同一个 Settings->Compiler 窗口执行此操作 .

    我创建了一个显示整个过程的youtube视频,因为我还没有在互联网上的任何地方看到过这种情况 .

  • 0

    我也有问题#2:"what difference between MinGW-w64 Win32 Shell and MSYS2 Shell?" . 我在this official wiki page找到了答案 . 有关原始完整格式,请参阅原始页面 . 以下是该页面的相关部分,截至2017年8月9日 .

    MSYS2 susbsystems MSYS2由三个子系统及其相应的软件包存储库msys2,mingw32和mingw64组成 . mingw子系统提供本机Windows程序,是项目的主要焦点 . 这些程序旨在与其他Windows程序良好协作,独立于其他子系统 . msys2子系统提供了一个模拟的大多数POSIX兼容环境,用于构建软件,包管理和shell脚本 . 这些程序位于虚拟单根文件系统中(根目录是MSYS2安装目录) . 已经做了一些努力使这些程序与本机Windows程序一起运行良好,但它并不是无缝的 . 每个子系统都在msys2-devel,mingw-w64-i686-toolchain和mingw-w64-x86_64-toolchain中提供自己的本机(即target = host)编译器工具链 . 还有交叉编译工具链,主机= {i686,x86_64} -pc-msys和mingw-w64-cross-toolchain中的target = {i686,x86_64} -w64-mingw32,但这些用途有限,因为它们没有库包 . Shell每个子系统都有一个关联的“shell”,它本质上是一组允许子系统正确协作的环境变量 . 可以使用MSYS2安装目录中的启动程序或使用Windows“开始”菜单中的快捷方式调用这些shell . 启动器设置MSYSTEM变量并使用适当的shell(bash)打开终端窗口(mintty) . Bash反过来源/ etc / profile,它根据MSYSTEM的值设置环境 . 如果没有正确的环境,各种事物可能会(有时会默默地)打破 . 例外情况是使用纯Windows中的mingw子系统,除了PATH中的条目之外,它不需要任何特殊环境 . 不要在shell之外设置MSYSTEM,因为这样做也会破坏 .

相关问题