MSYS 工具和TOOLCHAIN的配置

博客转载:http://www.javashuo.com/article/p-zkydqmag-ns.htmlshell

1. MSYS2 自带的开发环境,安装的包叫 msys2-devel编程

pacman -S msys2-devel
共有 6 组员在组 msys2-devel 中
1) binutils  2) cocom  3) gcc  4) gcc-fortran  5) msys2-w32api-headers 6) msys2-w32api-runtime

2. MinGW-w64 64位开发工具链的安装windows

pacman -S mingw-w64-x86_64-toolchain

或者MINGW-w64 32位开发工具链的安装api

pacman -Syu mingw-w64-i686-toolchain

运行不一样的 shell,则执行对应版本的 gcc函数

那么,这二者有什么区别呢?工具

一言以蔽之,前者编译出来的可执行文件,要依赖 MSYS2 提供的动态连接库,然后者不须要(暂时没发现这个状况,以下图片是我使用 mingw-w64-i686-toochain 中的gcc编译的,可能安装x86_64的有这种状况吧)。下面详细说明一下:
MSYS2 下的 gcc 编译环境,编译的可执行文件要依赖于 msys-2.0.dll,这个 DLL 提供了 Linux 下编程的提供的函数和接口,例如 fork 函数。 这个编译环境对于编译基于 Linux 下编写的软件,是很是适合的。例如编译 GNU 提供的各类工具。例如,你想编译最新版本的 GNU grep 工具,MSYS2 下的这个环境是很是适合的,环境很是相似于 cygwin.
一个简单的 hello world 程序:开发工具

#include <stdio.h>
int main()
{
        printf("Hello world !\n");
     return 0; }

编译出来的 a.exe, 用 dumpbin (这个是visual studio 提供的工具,固然,你也能够安装 Dependency Walker 这个独立小巧的工具来看)来查看 DLL 依赖关系spa

dumpbin /dependents a.exe

  

KERNEL32.dll 是 windows 提供的.net

msvcrt.dll 提供的接口,能够参考 C Run-Time Library Referenceblog

相关文章
相关标签/搜索