zoukankan      html  css  js  c++  java
  • MSYS2 学习使用日记

    过去几年一直使用的是msys,用起来很累(主要平时用的少,懂的少,菜鸟一个),最近为了编译64位的库接触了msys2,感觉编译起来轻松多了。

    以前我在使用msys的时候,很多与编译相关的的工具我都是进入各自不同的官网下载,然后手动安装。还要手动去配置一些路径。我不清楚msys有没有全自动功能。

    我用了一下msys2,哎呦我去,几个命令就自动把常用的工具给下载安装好,配置好了,这就省心多了。

    -------------------------------------------------------------------------------------------------------------------------------------

    1. 下载 msys2(64位): https://www.msys2.org/

    下载 msys2(32位):http://repo.msys2.org/distrib/i686/ 来自 https://www.msys2.org/wiki/MSYS2-installation/

    大陆下载太慢,只能通过阿里云香港下载会快一些。

    另外,如果不想在本地32位系统编译源代码,可到服务端(64位系统),使用 mingw32_shell.bat 来编译生成 32 位的库。


    安装后,生成三个 .bat 文件:

    三个 .bat 的区别就是 PATH 的设置,

    mingw32_shell.bat 优先使用 msys64mingw32 下的工具,

    mingw64_shell.bat 优先使用 msys64mingw64 下的工具,

    而 msys2_shell.bat 两个都不使用,只用自身 msys 的工具。

    这么做的好处是当需要编译 32bit Target 的项目时使用 mingw32_shell.bat,64 bit 使用 mingw64_shell.bat,各套工具互不干扰。


    ---------------------------------------------------------------------------------


    2. 参考:在windows上安装配置msys2 https://blog.csdn.net/hustlei/article/details/86687588

    打开文件夹 C:msys64etcpacman.d


    用【记事本】编辑:mirrorlist.mingw32

    Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
    Server = http://mirror.bit.edu.cn/msys2/mingw/i686/
    Server = http://repo.msys2.org/mingw/i686/
    Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686/
    Server = http://www2.futureware.at/~nickoe/msys2-mirror/i686/


    用【记事本】编辑:mirrorlist.mingw64

    Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
    Server = http://mirror.bit.edu.cn/msys2/mingw/x86_64/
    Server = http://repo.msys2.org/mingw/x86_64/
    Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64/
    Server = http://www2.futureware.at/~nickoe/msys2-mirror/x86_64/
    Server = http://mirror.bit.edu.cn/msys2/REPOS/


    用【记事本】编辑:mirrorlist.msys

    Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
    Server = http://mirror.bit.edu.cn/msys2/msys/$arch/
    Server = http://repo.msys2.org/msys/$arch/
    Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch/
    Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/

    3. 安装 mingw-w64: 参考:https://blog.csdn.net/cainiao1412/article/details/106424106

    pacman -Sl | grep gcc # 查找可用的GCC包

    #安装 64位 gcc
    pacman -S mingw-w64-x86_64-gcc #MSYS2 会自动将这个包装在 msys64/mingw64/ 下,从之前的分析可知只有 mingw64_shell.bat 会用到这个目录下的程序。

    #安装 32位 gcc
    #pacman -S mingw-w64-i686-gcc #MSYS2 会自动将这个包装在 msys64/mingw32/ 下,从之前的分析可知只有 mingw32_shell.bat 会用到这个目录下的程序。

    gcc -v 查看当前安装的版本号 --> 我这边显示的结果是: gcc version 10.2.0 (Rev5, Built by MSYS2 project)


    --------------------------------


    pacman -Ss yasm #查找 yasm 相关的可用包

    pacman -Ss nasm #查找 nasm 相关的可用包

    pacman -Ss make #查找 make 相关的可用包


    --------------------------------

    4. 安装其他常用工具, 参考:https://blog.csdn.net/afei198409/article/details/88560411

    pacman -S base-devel 这个安装的是32位还是64位,我没搞清楚。

    pacman -S yasm #安装 yasm

    pacman -S nasm #安装 nasm

    pacman -S make #安装 make


    测试发现:yasm, nasm, make 全都安装在 C:msys64usrin, 全都是 64位 应用程序。


    根据这个安装过程看,如果想安装 libpng 和 openssl 之类的库,只需要一条命令(pacman xxx)就完成了,很方便


    --------------------------------------------------------------- 编译 pngquant-2.12.5


    例如,编译 pngquant-2.12.5-src 的时候,需要 libpng 库:

    ./configure #在没有安装 libpng 库的时候, 会提示错误信息

    Compiler: gcc
    Debug: no
    SSE: yes
    OpenMP: no
    imagequant: build static
    libpng: error ... not found (try: `apt-get install libpng16-dev` or `apt-get install libpng-dev` or `yum install libpng-devel`)


    pacman -Ss libpng # 列出所有提及libpng,前缀和全部的软件包

    pacman -S mingw-w64-x86_64-libpng #安装 64位 libpng

    #pacman -S mingw-w64-i686-libpng #安装 32位 libpng


    ./configure #再试一次

    make

    就完成了 pngquant-2.12.5-src 64位的编译

    --------------------------------------------------------------- 编译 libiconv-1.16, 生成的库文件存放到 /usr/local/libiconv-1.16-x64

    ./configure --prefix=/usr/local/libiconv-1.16-x64

    make

    make install


    --------------------------------------------------------------- 编译 pcre-8.35 与 pcre-8.44: https://www.cnblogs.com/personnel/p/4584972.html

    ./configure --disable-cpp --prefix=/local/pcre-8.35-x64

    make

    make install

    --------------------------------------------------------------- 编译 openssl-1.1.1i

    #默认编译得到的是静态库:

    ./config

    make

    make test

    make install

    #编译动态库,只需添加参数 shared 即可:

    ./config shared

    make

    make test

    make install


    ---------------------------------------------------------------

    注意:

    目前所有32位的库都是在64位的系统上编译的, 如果在32位系统上无法使用这些库,就到 http://repo.msys2.org/distrib/i686/ 下载 32位的 msys2 在本地32位机器上重新编译一下。


    --------------------------------

    参考资料:http://www.360doc.com/content/16/0514/16/496343_559090195.shtml

    查看可用的安装包pacman -Sl | grep gcc可以看到以下三个
    mingw32 mingw-w64-i686-gcc 4.9.1-3
    mingw64 mingw-64-x86_64-gcc 4.9.1-3
    msys gcc 4.8.2-2

    pacman -S mingw-w64-i686-gcc # MSYS2 会自动将这个包装在 msys64/mingw32 下,从之前的分析可知只有 mingw32_shell.bat 会用到这个目录下的程序。

    安装 make

    查找 make 相关的 make 工具
    pacman -Sl |grep make

    安装 MSYS2 的 make
    pacman -S make


    安装 Git

    搜索 git
    pacman -Sl |grep git

    安装 MSYS2 的 git
    pacman -S git


    --------------------------------

    参考资料:https://www.msys2.org/wiki/MSYS2-installation/

    安装新软件包: pacman -S <package_names|package_groups>

    例如,pacman -S make gettext base-devel 在本示例中是一个包含许多软件包的软件包组。

    如果您尝试安装软件包组,Pacman会询问您是要从该组中安装一个软件包还是要从该组中安装所有软件包。

    删除软件包: pacman -R <package_names|package_groups>

    搜索软件包: pacman -Ss <name_pattern>


    --------------------------------

    MSYS2使用Pacman(从Arch Linux中获知)来管理其软件包,并带有三个不同的软件包存储库:

    mingw64:包含64位本机Windows软件(与mingw-w64 x86_64工具链一起编译)

    mingw32:包含32位本机Windows软件(与mingw-w64 i686工具链一起编译)

    msys2: 包含依赖于MSYS2的软件

  • 相关阅读:
    基于WEB的仓库管理系统设计与实现
    基于SSH的医院在线挂号系统设计与实现
    Java新闻发布管理系统设计与实现
    基于java记账管理系统设计与实现
    基于java电脑彩票销售管理系统的设计与实现
    基于JAVA的推箱子游戏系统设计与实现
    银行柜员业务绩效考核系统的设计与实现
    医院管理住院系统设计与实现
    陶瓷工厂的进销存管理系统设计与实现
    搜索引擎的设计与实现
  • 原文地址:https://www.cnblogs.com/personnel/p/14238996.html
Copyright © 2011-2022 走看看