首页 > 编程知识 正文

mingw编译器怎么用,mingw解压后怎么安装

时间:2023-05-05 18:19:58 阅读:157202 作者:783

MinGW和CygWin都可以在windows上编译unix风格的C/C代码。

MinGW和CygWin的区别小标题是参考网站(

Back to Windows With WSL or CygWin? MinGW :修改编译器,使windows下的编译器可以将fork等调用翻译为等价形式。 Cygwin :修改库,以便windows提供类似于UNIX提供的库。 他们对程序的接口类似于UNIX,这些库当然是用win32的API实现的。 最大的不同在于,使用CygWin可以在windows上调用unix-like的API(fork、spawn、signals、select、sockets等)。 但是,调用unix特有的API函数时,在windows环境下不能正常运行,想在windows上正常运行时,必须依赖cygwin1.dll,对速度多少有些影响; 使用MinGW编译的程序,如果在源代码中调用了unix环境的API,MinGW会将对这些unix的API调用在win32中翻译为等效形式。 同时这个程序不能在windows上运行。

如果你想在windows环境下开发linux运行程序,CygWin是你的最佳选择。 开发windows的可执行文件,想要追求速度的话,MinGW比较合适。

Cygwin和MinGW的区别和联系怎么样? 区别: Cygwin为模拟POSIX系统,源代码移植Linux应用于Windows; MinGW是用于开发windows APP应用程序的开发环境。

联系方式:均提供部分Linux上的APP,Windows上多跑分; MinGW可以作为Cygwin下的软件包在Cygwin中运行。

程序只使用C/C标准库时,可以用MinGW或Cygwin进行编译。

如果程序一直使用到POSIX API,则只能用Cygwin编译。

程序用MinGW编译,可以直接在Windows上运行。

程序将在Cygwin中编译并运行,并且在安装过程中必须依赖于附带的cygwin1.dll。

API? 参考百度百科API (applicationprogramminginterface,APP应用程序接口)可以是函数、HTTP接口等预定义接口,也可以是软件系统的各种组件之一用于提供一组基于软件或硬件的APP应用程序和开发人员可以访问的例程,而无需访问源代码或了解其内部工作原理的详细信息。

Windows API

API函数包含在Windows系统目录下的动态连接库文件中。 Windows API是一组预定义的Windows函数,用于控制Windows各个部件的外观和行为。 的每个动作都会引起一个或多个函数的执行,以告诉Windows发生了什么。 在某种意义上,这类似于Windows的天然代码。 其他语言只是提供自动、轻松访问API的方法。 当fddyb单击窗体按钮时,Windows会向窗体发送消息,VB会获取并分析此调用,然后生成特定事件。

简单地说,Windows系统不仅协调APP应用程序的执行、内存的分配、系统资源的管理,而且还是一个大的服务中心。 它调用该服务中心的各种服务(每个服务一个函数),帮助APP应用程序实现打开窗口、绘制图形和使用外围设备的目的。 这些函数服务的对象是APP应用,因此称为applicationprogramminginterface,简称API函数。 WIN32 API是MicrosoftWindows 32位平台的APP位置编程接口。

在Windows工作环境中运行的所有APP应用程序都可以调用Windows API。

linux API

在linux上,用户编程接口API符合—POSIX标准,这是UNIX中最流行的APP位置编程接口标准。 POSIX标准是IEEE和ISO/IEC共同开发的标准系统。 该标准基于当时现有UNIX的实践和经验,编写了操作系统的系统调用编程接口API,以保证APP应用程序级能够在多种操作系统上移植运行。 这些系统调用编程接口主要通过C库(LIBC )实现。

这个世界上只有符合posix协议的操作系统和Windows两种。 就像这个笑话一样,开发Windows程序需要选择win32,开发Linux、Unix、Mac OS等其他操作系统上的程序需要选择posix。

选择cygwin编译器cygwin将提供多个c/c编译器。 其中,gcc-core、gcc-g是通过Cygwin1.dll将windows API包转换为Linux上的API调用格式的c/c编译器,符合MingW64-XXIX标准

win32API 的编译器(Cygwin 中所使用的 mingw64 编译器是gcc官网中的 mingw-w64 项目)( mingw64-x86_64 开头的包都是为生成可运行于 windows 原生接口下的程序的工具)

涉及到 win32API 的程序使用 mingw64 的编译器理论上比 gcc 要快些,因为 mingw64 编译是不需要调用 Cygwin1.dll 的转换的

mingw64-gcc编译器使用

在需要使用 mingw64 版本的编译器时一般需要一些程序运行时的动态链接库,而这些 dll 文件并没有放在 Cygwin怕孤独的白昼 文件夹,而是放在了 X:Cygwinusrx86_64-w64-mingw32sys-rootmingw怕孤独的白昼 文件夹下,一般包括 libstdc+±6.dll(GCC 的 C++ 标准库实现),libgcc_s_seh-1.dll(C++异常处理实现)和 libwinpthread-1.dll(C++ thread线程库) 等 C++ 在 Windows 下常用库的实现,这个目录如果使用 mingw64 编译时一定要添加到环境变量中。

在 X:CygwinCygwinusrx86_64-w64-mingw32sys-rootmingw 文件夹下有如下文件夹(应该与单独安装 mingw-w64 或 minGW 编译器类似):

怕孤独的白昼 : 用于存放可执行文件(通过包管理安装等),以及一些动态链接库(二进制)文件
etc : 自行安装或非系统主要的配置文件目录
include : 编写系统调用或者 C/C++ 标准库以及一些第三方库所需头文件
lib : 编写 C/C++ 程序的标准库或第三方库或系统调用必要的一些静态链接库文件
libexec : 目录下存放一些函数库、执行文件及连接文件
share : 独立与你计算机结构的数据,譬如,字典中的词。
ssl : ssl 连接的相关配置文件

在你安装基于mingw-w64 或 minGW(被 w64 兼容) 的第三方库时需要将第三方库的头文件、动态链接库文件以及静态链接库文件分别拷贝到如上的 include 、怕孤独的白昼 和 lib 文件夹下,并且保证 X:Cygwinusrx86_64-w64-mingw32sys-rootmingw 文件夹被加入到系统变量中,另外,使用 Makefile 编译时需要使用 -L -l 参数手动将第三方库实现文件进行链接。

(这么写了,然后接着用posix标准的gcc)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。