首页 > 编程语言 >使用 MSYS2+MinGW 编译win程序

使用 MSYS2+MinGW 编译win程序

时间:2023-11-23 14:44:24浏览次数:37  
标签:MSYS2 Windows win 编译 Unix MinGW 安装

在跨平台开发场景下,MinGW为那些习惯于使用GNU工具(例如gcc、gdb、make等)的开发者提供了一个便利:它允许他们在Windows平台上使用相同的工具链。这种做法有助于保持在不同操作系统间的开发一致性。此外,当某个应用依赖于Unix系统下的特定库,而这些库在Windows下没有直接的替代品时,MSYS2结合MinGW就显得尤为重要。它们使得在Windows上编译和使用这些Unix系统的库成为可能。

MSYS2 介绍

MSYS2是一个在Windows上提供类似Linux的环境和工具的软件。它的特点可以这样概括:

1、Linux风格的环境

MSYS2为Windows用户提供了一个类Unix的命令行界面和工具,如bash shell、grep、awk等,这让习惯于Linux或Unix环境的用户在Windows上也能感到舒适。

2、软件包管理

它内置了Pacman软件包管理器,这是一种方便的方式来安装、更新和管理各种工具和库。

3、编译和构建应用

MSYS2提供了必要的工具和库,支持在Windows上编译和构建基于Unix的应用程序。

同时它支持交叉编译,这意味着你可以在Windows上编译出既适用于Linux也适用于Windows的程序。

MSYS2是一个非常适合需要在Windows操作系统上使用Linux风格工具和特性的开发者的平台。它特别有用于那些需要在Windows上开发、编译和运行跨平台软件的用户。

编译Win程序

在 Windows 系统上,通过 MINGW64 和 MSYS2 提供的类 Unix 环境中编译Win程序办法。

1、下载 MSYS2 安装器

访问 MSYS2 的官方网站 https://www.msys2.org/ 并下载适合您系统的安装器。如果您的系统是64位的,您应该下载 msys2-x86_64-*.exe

2、安装 MSYS2

双击下载的安装器文件,按照安装向导的步骤进行安装。通常,建议安装在默认路径 C:\msys64

3、更新 MSYS2 系统和包

  • 打开 MSYS2 终端。在开始菜单中搜索 MSYS2 或在安装目录下找到 msys2.exe 文件并运行。
  • 一旦打开,首先更新包管理器本身,运行以下命令:
    pacman -Syu
    
  • 如果有提示重启 MSYS2,关闭终端窗口并重新打开它来完成更新。
  • 然后,更新其余的包,运行以下命令:
    pacman -Su
    

4、安装 MinGW-w64

在 MSYS2 终端中,根据您需要编译的目标系统,安装相应的 MinGW-w64 工具链。对于64位系统,运行:

pacman -S mingw-w64-x86_64-toolchain

安装过程中,系统可能会让你选择安装哪些具体的包。如果不确定,安装全部(通常通过输入all选择)。

5、添加 MinGW-w64 到您的系统路径:

  • 为了从任何命令行界面使用 MinGW-w64,您需要将它添加到系统环境变量的 PATH 中。
  • 右键点击“此电脑”或“我的电脑”,选择“属性”,然后点击“高级系统设置”。
  • 在系统属性窗口中,点击“环境变量”。
  • 在“系统变量”部分,滚动找到并选中“Path”变量,然后点击“编辑”。
  • 点击“新建”,添加 MinGW-w64 的 bin 目录的路径,通常是 C:\msys64\mingw64\bin。
  • 点击确定保存并关闭所有窗口。

6、验证安装:

打开一个新的命令提示符或 PowerShell 窗口,输入 gcc --versionmingw32-make --version 来检查安装是否成功。如果安装正确,这些命令将显示版本信息。

通过上述步骤,您将能够设置一个在 Windows 上运行类 Unix 环境的系统,可以用于开发和编译适用于 Windows 的应用程序。

标签:MSYS2,Windows,win,编译,Unix,MinGW,安装
From: https://www.cnblogs.com/ghj1976/p/shi-yong-msys2mingw-bian-yiwin-cheng-xu.html

相关文章

  • 界面组件Telerik UI for WinForms中文教程 - 创建明暗模式的桌面应用
    黑暗模式现在在很多应用程序中都挺常见的,但如何在桌面应用程序中实现它呢?这很简单,本文将为大家介绍如何使用一个类和命令行调用来实现!TelerikUIforWinForms拥有适用WindowsForms的110多个令人惊叹的UI控件。所有的UIforWinForms控件都具有完整的主题支持,可以轻松地帮助开发......
  • Windows基础
    403:可能没有访问具体页面,只是访问到目录500:服务器代码可能出现错误了常用的命令在C:\Windows\system32/这个目录C:\Windows\system32/driver\etc\hosts会影响域名解析,优先级要高于DNSC:\Windows\system32\config\sam这个文件中记录了账户和密码,如果忘了了的话在PE模式......
  • Windbg调试工具命令详解
    .cls-------------------------------清屏~----------------------------------查看当前程序的所有线程~0s--------------------------------切换到我们需要调试的原托管线程中!Threads---------------------------命令可以查看进程内所有的托管线程,仅仅是托管线程!dumphea......
  • Winfrom窗体初始化和窗体Load方法前后
    运行结果为【窗体初始化之前!】》【窗体初始化!】》【窗体Load!】 ......
  • Windows重映射交换Esc与Cap键功能与恢复
    参考链接:https://blog.csdn.net/qq_35333978/article/details/113702970重映射.regWindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\KeyboardLayout]"ScancodeMap"=hex:00,00,00,00,00,00,00,00,03,00,00,00,3a......
  • Windows_Cmd常用操作配置
    目录特定功能执行命令显示系统当前版本电源管理历史命令相关显示路由表显示本地ARP缓存测试主机联通性查看网卡信息修改DOS窗口中的编码格式诊断域名系统(DNS)基础结构的信息追踪网络路由获取序列号命令行添加环境变量设置网口ip文件操作磁盘远程连接管理进程管理计划任务管......
  • 9.9 Windows驱动开发:内核远程线程实现DLL注入
    在笔者上一篇文章《内核RIP劫持实现DLL注入》介绍了通过劫持RIP指针控制程序执行流实现插入DLL的目的,本章将继续探索全新的注入方式,通过NtCreateThreadEx这个内核函数实现注入DLL的目的,需要注意的是该函数在微软系统中未被导出使用时需要首先得到该函数的入口地址,NtCreateThreadEx......
  • Windows下RabbitMQ 集群及应用测试
     转自:https://blog.csdn.net/elie_yang/article/details/866578511:安装erlang环境; 2:安装RabbitMQ,以上2步都是下载安装,下一步结束;参考官网:http://www.rabbitmq.com/install-windows.html 步骤2完成后,可至windows服务列表中找到RabbitMQ服务; 3:删除默认guest用户,添加......
  • Windows平台Unity下实现camera场景推送RTMP|轻量级RTSP服务|实时录像
    技术背景我们在对接Unity平台camera场景采集的时候,除了常规的RTMP推送、录像外,还有一些开发者,需要能实现轻量级RTSP服务,对外提供个拉流的RTSPURL。目前我们在Windows平台Unity下数据源可采集到以下部分:采集Unitycamera场景;采集摄像头;采集屏幕;采集Unity声音;采集麦克风;采集扬声器;Un......
  • Win11 SQL Server 安装程序无法通过 Windows Update 服务搜索更新。
    SQLServer安装提示安装程序无法通过windowsupdate服务搜索更新SQLServer安装提示安装程序无法通过windowsupdate服务搜索更新_sqlserver安装程序无法通过windowsupdate-CSDN博客解决方法:手动创建DefaultSetup.ini放置到安装程序文件夹里的x64或者x86目录中,如果De......