工程師 - MinGW

MinGW

Minimalist GNU for Windows,前身為mingw32,是一個免費開源的軟件開發環境,從2010年開始項目停止并不再使用。后續提供MinGW-w64。

MinGW包括:

?- 移植到Windows上的GNU編譯器集(GCC),包括C、C++、ADA和Fortran編譯器。

?- 適用于Windows的GNU Binutils(匯編器、鏈接器、歸檔管理器 / assembler, linker, archive manager)

MinGW的用途是什么?

MinGW是一個基于GNU GCC和Binutils項目的編譯器系統,它可以將代碼編譯和鏈接到Win32(Windows)系統上運行,生成本地微軟Windows應用程序。它提供C、C++和Fortran編譯器以及其他相關工具。

What is the use of MinGW?

MinGW is a compiler system based on the GNU GCC and Binutils projects that compiles and links code to be run on Win32 (Windows) systems. It provides C, C++ and Fortran compilers plus other related tools.

所以,通俗的說,MinGW就是用你在Linux上習慣的方式來使用GCC在Windows平臺上編碼并生成可運行的Windows程序。

MinGW是一個在Windows平臺上使用的完整的GCC工具鏈(包括部分前端功能,如C、C++、Ada、Go等編程語言的編譯),代碼編譯和鏈接過程中使用的是Windows操作系統組件C運行時庫msvcrt.dll。它試圖盡可能做到最簡最少最小(因此而得名)。

MinGW并不試圖在Windows之上提供一個完整的POSIX層,它也不要求你與一個特殊的兼容庫鏈接(如上所說,只使用了Windows系統自帶的庫,并不依賴于任何第三方C-Runtime DLLs)。

Cygwin is a POSIX emulation layer, while MinGW provides functions supplied by the Win32 API. MinGW-w64 is a fork of MinGW that supports 64-bit Windows.

MinGW-w64

https://www.mingw-w64.org/

Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distribution.

Mingw-w64是原mingw.org項目的一個進化版,用于在Windows系統上支持GCC編譯器。它在2007年從原MinGW分支出來,以提供對64位和新的API的支持。此后,它獲得了廣泛的使用和傳播。

較新的MinGW-w64帶有大約99%完整的Windows API綁定(不包括ATL等),包括x64支持和實驗性ARM實現。你可能偶爾會發現一些奇特的常量未被定義,但對于99%的人在99%的時間內使用的東西,它工作得非常好。

https://sourceforge.net/projects/mingw/

MinGW: A native Windows port of the GNU Compiler Collection (GCC), with freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All of MinGW's software will execute on the 64bit Windows platforms.

Downloads - MinGW-w64

https://www.mingw-w64.org/downloads/

選擇MinGW-W64-builds,這個是純Windows平臺使用的。其他的很多就是其他平臺下使用MinGW-w64,是交叉編譯了,比如在Ubuntu下使用MinGW,編譯出可以在Windows下執行的程序。

再比如,Cygwin里,MinGW作為一個包,可以安裝。裝完后,就可以使用MinGW作為交叉編譯器,編出在Windows下運行的exe文件了。

下載地址:https://github.com/niXman/mingw-builds-binaries/releases

關于MinGW,可選Architecture : i686和x86_64,可選Threads Model種類:posix、win32和MCF,可選Exception:seh和silj,第二個之前版本有,現在沒了。

可選的C運行庫:msvcrt和ucrt。

i686平臺下,只有dwarf一種選中,是一種調試信息文件格式。

14.2是gcc的版本,v12-rev0是MinGW-w64的發布版本。

下載壓縮文件后,解壓縮到合適路徑。

MinGW目錄下的bin路徑,要加入到系統環境變量中,在System variables的Path中。

然后打開命令行,就可以執行gcc --version了。

使用gcc編譯C代碼,就會得到可執行的exe文件。

在Windows下使用MinGW的好處,方便了在Linux下用慣了GCC套件的開發者,并跟隨GCC版本更新。如前面可選的MinGW版本所列,MinGW編譯器既可以使用Windows API編程,也可以使用POSIX編程。

??


MinGW-w64

MinGW is an abbreviation of Minimalist GNU for Windows. The idea of MinGW is to provide a development platform for building cross-platform applications on Windows. The important pieces are:

* a set of FOSS Windows specific header files and import libraries which enable the use of the Windows API,

* a supplementary library and a runtime that fill in some gaps.

... but the term generally encompasses the cross-platform GNU development tools:

* GNU Compiler Collection (GCC),

* GNU Binutils (assembler, linker, archive manager),

* GNU Debugger (GDB),

* and miscellaneous utilities.

There are at least two projects implementing this idea:

* the original MinGW project, sometimes referred to as mingw.org

* and the MinGW-w64 project.

The MinGW-w64 project itself doesn't aim to be a software distribution. There are multiple builds of mingw-w64 toolchains and multiple software distributions built using MinGW-w64.

參考:

MSYS2 History - MSYS2

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64425.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64425.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64425.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

EasyExcel(讀取操作和填充操作)

文章目錄 1.準備Read.xlsx(具有兩個sheet)2.讀取第一個sheet中的數據1.模板2.方法3.結果 3.讀取所有sheet中的數據1.模板2.方法3.結果 EasyExcel填充1.簡單填充1.準備 Fill01.xlsx2.無模版3.方法4.結果 2.列表填充1.準備 Fill02.xlsx2.模板3.方法4.結果 …

CKA認證 | Day7 K8s存儲

第七章 Kubernetes存儲 1、數據卷與數據持久卷 為什么需要數據卷? 容器中的文件在磁盤上是臨時存放的,這給容器中運行比較重要的應用程序帶來一些問題。 問題1:當容器升級或者崩潰時,kubelet會重建容器,容器內文件會…

Python調用R語言中的程序包來執行回歸樹、隨機森林、條件推斷樹和條件推斷森林算法

要使用Python調用R語言中的程序包來執行回歸樹、隨機森林、條件推斷樹和條件推斷森林算法,重新計算中國居民收入不平等,并進行分類匯總,我們可以使用rpy2庫。rpy2允許在Python中嵌入R代碼并調用R函數。以下是一個詳細的步驟和示例代碼&#x…

關于JAVA方法值傳遞問題

1.1 前言 之前在學習C語言的時候,將實參傳遞給方法(或函數)的方式分為兩種:值傳遞和引用傳遞,但在JAVA中只有值傳遞(顛覆認知,基礎沒學踏實) 參考文章:https://blog.csd…

Excel基礎知識

一:數組 一行或者一列數據稱為一維數組,多行多列稱為二維數組,數組支持算術運算(如加減乘除等)。 行:{1,2,3,4} 數組中的每個值用逗號分隔列:{1;2;3;4} 數組中的每個值用分號分隔行列&#xf…

基于DIODES AP43781+PI3USB31531+PI3DPX1207C的USB-C PD Video 之全功能顯示器連接端口方案

隨著USB-C連接器和PD功能的出現,新一代USB-C PD PC顯示器可以用作個人和專業PC工作環境的電源和數據集線器。 雖然USB-C PD顯示器是唯一插入墻壁插座的交流電源輸入設備,但它可以作為數據UFP(上游接口)連接到連接到TCD&#xff0…

gazebo_world 基本圍墻。

如何使用&#xff1f; 參考gazebo harmonic的官方教程。 本人使用harmonic的template&#xff0c;在里面進行修改就可以分流暢地使用下去。 以下是world 文件. <?xml version"1.0" ?> <!--Try sending commands:gz topic -t "/model/diff_drive/…

解決無法在 Ubuntu 24.04 上運行 AppImage 應用

在 Ubuntu 24.04 中運行 AppImage 應用的完整指南 在 Ubuntu 24.04 中&#xff0c;許多用戶可能會遇到 AppImage 應用無法啟動的問題。即使你已經設置了正確的文件權限&#xff0c;AppImage 仍然拒絕運行。這通常是由于缺少必要的庫文件所致。 問題根源&#xff1a;缺少 FUSE…

Pytorch使用手冊-DCGAN 指南(專題十四)

1. Introduction 本教程將通過一個示例介紹 DCGANs(深度卷積生成對抗網絡)。我們將訓練一個生成對抗網絡(GAN),在給它展示大量真實名人照片后,它能夠生成新的“名人”圖片。這里的大部分代碼來源于 PyTorch 官方示例中的 DCGAN 實現,而本文檔將對該實現進行詳細解釋,并…

springboot配置oracle+達夢數據庫多數據源配置并動態切換

項目場景&#xff1a; 在工作中很多情況需要跨數據庫進行數據操作,自己總結的經驗希望對各位有所幫助 問題描述 總結了幾個問題 1.識別不到mapper 2.識別不到xml 3.找不到數據源 原因分析&#xff1a; 1.配置文件編寫導致識別mapper 2.配置類編寫建的格式有問題 3.命名…

html+css+js網頁設計 美食 家美食1個頁面

htmlcssjs網頁設計 美食 家美食1個頁面 網頁作品代碼簡單&#xff0c;可使用任意HTML輯軟件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html編輯軟件進行運行及修改編輯等操作&#xff09;。 獲取源碼 1&#xf…

【機器學習】【樸素貝葉斯分類器】從理論到實踐:樸素貝葉斯分類器在垃圾短信過濾中的應用

&#x1f31f; 關于我 &#x1f31f; 大家好呀&#xff01;&#x1f44b; 我是一名大三在讀學生&#xff0c;目前對人工智能領域充滿了濃厚的興趣&#xff0c;尤其是機器學習、深度學習和自然語言處理這些酷炫的技術&#xff01;&#x1f916;&#x1f4bb; 平時我喜歡動手做實…

Vue使用Tinymce 編輯器

目錄 一、下載并重新組織tinymce結構二、使用三、遇到的坑 一、下載并重新組織tinymce結構 下載 npm install tinymce^7 or yarn add tinymce^7重構目錄 在node_moudles里找到tinymce文件夾&#xff0c;把里面文件拷貝一份放到public下&#xff0c;如下&#xff1a; -- pub…

odoo中@api.model, @api.depends和@api.onchange 裝飾器的區別

文章目錄 1. api.model用途特點示例 2. api.depends用途特點示例 3. api.onchange用途特點示例 總結 在 Odoo 中&#xff0c;裝飾器&#xff08;decorators&#xff09;用于修飾方法&#xff0c;以指定它們的行為和觸發條件。api.model、api.depends 和 api.onchange 是三個常用…

EMNLP'24 最佳論文解讀 | 大語言模型的預訓練數據檢測:基于散度的校準方法

點擊藍字 關注我們 AI TIME歡迎每一位AI愛好者的加入&#xff01; 點擊 閱讀原文 觀看作者講解回放&#xff01; 作者簡介 張偉超&#xff0c;中國科學院計算所網絡數據科學與技術重點實驗室三年級直博生 內容簡介 近年來&#xff0c;大語言模型&#xff08;LLMs&#xff09;的…

大數據技術-Hadoop(一)Hadoop集群的安裝與配置

目錄 一、準備工作 1、安裝jdk&#xff08;每個節點都執行&#xff09; 2、修改主機配置 &#xff08;每個節點都執行&#xff09; 3、配置ssh無密登錄 &#xff08;每個節點都執行&#xff09; 二、安裝Hadoop&#xff08;每個節點都執行&#xff09; 三、集群啟動配置&a…

PilotGo

title: 解鎖 PilotGo&#xff1a;智能化運維的得力助手 date: ‘2024-12-29’ category: blog tags: PilotGo運維管理智能化工具技術應用 sig: ops archives: ‘2024-12’ author:way_back summary: PilotGo 作為一款創新的運維管理工具&#xff0c;憑借其智能化的特性和豐富的…

折騰日記:如何讓吃灰筆記本發揮余熱——搭建一個相冊服務

背景 之前寫過&#xff0c;我在家里用了一臺舊的工作站筆記本做了服務器&#xff0c;連上一個綠聯的5位硬盤盒實現簡單的網盤功能&#xff0c;然而&#xff0c;還是覺的不太理想&#xff0c;比如使用filebrowser雖然可以備份文件和圖片&#xff0c;當使用手機使用網頁&#xf…

使用seata實現分布式事務管理

配置 版本說明&#xff1a;springCloud Alibaba組件版本關系 我用的是spring cloud Alibaba 2.2.1.RELEASE 、springboot 2.2.1.RELEASE、nacos 2.0.1、seata1.2.0,jdk1.8 seata 主要用于在分布式系統中對數據庫進行事務回滾&#xff0c;保證全局事務的一致性。 seata的使用…

【總結】動態規劃

線性dp LeetCode題單&#xff0c; 從記憶化搜索到遞推 Pre&#xff1a; 從最初狀態到最終狀態等價&#xff0c;那么從最終狀態開始和最初狀態開始結果一樣。 遞歸時不會產生其他負面結果&#xff0c;即無論何時進入遞歸&#xff0c;只要遞歸參數相同&#xff0c;結果就相同。 …