在 mingw-w64 中打包

下载 mingw-w64 , 下载 msys。

资源包常用下载地址:(也可直接百度 “index of glib”)

http://mirrors.ustc.edu.cn/gnu
http://ftp.gnome.org/pub/gnome/sources/glib/
http://distfiles.macports.org/libxml2/
http://ftp.exim.llorien.org/pcre/
http://mirrors.ibiblio.org/gnu/ftp/gnu/ncurses/

一、编译glib-2.0

参考文章:
https://www.douban.com/note/216473248/
http://blog.163.com/wangxuefan1220@126/blog/static/8821147201231904427205/

  1. msys命令行中输入 mount D:/mingw-w64/mingw64 /mingw 来映射路径。
  2. 编辑 msys 启动宏定义: msys/etc/profile

    
    # 所有的变量都定义在/etc/profile里,在启动mintty的时候自动加载。
    
    export PATH=/mingw/bin:/mingw/x86_64-w64-mingw32/bin:/mingw/libexec/gcc/x86_64-w64-mingw32/7.2.0:/usr/local/bin:/usr/bin:$PATH
    export C_INCLUDE_PATH=/mingw/include:/mingw/x86_64-w64-mingw32/include:/usr/local/include
    
    # C++头文件顺序需要在C头文件前
    
    export CPLUS_INCLUDE_PATH=/mingw/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++:$C_INCLUDE_PATH
    export LIBRARY_PATH=/mingw/lib:/mingw/x86_64-w64-mingw32/lib:/mingw/opt/lib:usr/local/lib:/mingw/lib/gcc/x86_64-w64-mingw32/7.2.0
    
    export LDFLAGS="-L/usr/local/lib -L/mingw/lib -L/mingw/x86_64-w64-mingw32/lib -L/mingw/opt/lib"
    
    
    ##定义pkg-config的地址和config路径。
    
    export PKG_CONFIG=/bin/pkg-config.exe
    export PKG_CONFIG_PATH=/mingw/lib/pkgconfig
    
    export BUILD=x86_64-w64-mingw32
    export HOST=x86_64-w64-mingw32
    export TARGET=x86_64-w64-mingw32
    export PREFIX=/mingw
    export CC=gcc
    export CXX=c++
  3. 安装依赖库(安装之前搜索是否已经存在)(注:也可尝试使用 http://win32builder.gnome.org/ 内的完整包)
    1) ../pkg-config-0.29.2/configure --prefix=$PREFIX --with-internal-glib 参数 –with-internal-glib 指定使用内部 glib (注:也可直接使用 msys/bin 下的 pkg-config, 无需编译更改 PKG_CONFIG 宏即可)
    2) zlib-1.2.11

    copy win32\makefile.gcc makefile.gcc
    mingw32-make -f makefile.gcc

    3) pthreads-w32-2-9-1-release

    make clean GC-static
    cp libpthreadGC2.a /mingw/lib
    cp pthread.h sched.h /mingw/include

    4)../libxml2-2.9.7/configure --build=$BUILD --target=$TARGET --prefix=$PREFIX CPPFLAGS="-I/usr/local/include -DLIBXML_STATIC" --without-python LDFLAGS="-L/usr/local/lib -L/mingw/lib -L/mingw/x86_64-w64-mingw32/lib -L/mingw/opt/lib -lws2_32 -lz -lwsock32 -lregex"
    5)../libiconv-1.15/configure --prefix=$PREFIX --enable-static --disable-shared(注:也可以使用 mingw-w64 自带的 libiconv.a,在 /mingw/bin/pkgconfig 下编辑 libiconv.pc 来给 pkg-config 提供编译参数与库位置。)
    6)libffi-3.2.1 编译时 win32.s 文件内指令错误,初步认为是64bit 和 32bit 问题。 直接编写.pc文件使用 /mingw/opt/lib 下的
    7) pcre-8.41

    ../pcre-8.41/configure --prefix=$PREFIX --enable-utf8 --enable-unicode-properties

    8)pixman-0.34.0
    9) gettext-0.19.8.1 (注:也可直接使用 msys/bin 下的 gettext)
../gettext-0.19.8.1/configure --prefix=$PREFIX --enable-shared  --enable-static --enable-threads=win32 --disable-java --disable-csharp --disable-openmp CPPFLAGS="-I/mingw/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++ -I/mingw/include -I/mingw/x86_64-w64-mingw32/include -I/usr/local/include -DLIBXML_STATIC"
        问题:undefined reference to _imp__xmlFree 
        解决:在相应文件头部加上以下代码
        (以及configure CPPFLAGS参数 -DLIBXML_STATIC)
 #if !defined(LIBXML_STATIC)
        #define XMLPUBFUN __declspec(dllexport)
        #define XMLPUBVAR __declspec(dllexport)
 #else
    #define XMLPUBFUN
    #if !defined(LIBXML_STATIC)
      #define XMLPUBVAR __declspec(dllimport) extern
    #else
      #define XMLPUBVAR extern
    #endif
  #endif
  #define XMLCALL __cdecl
  #define XMLCDECL __cdecl
  #if !defined _REENTRANT
    #define _REENTRANT
  #endif
#endif

10) glib-2.55.0

            ../glib-2.55.0/configure --prefix=$PREFIX --enable-static --disable-shared --with-threads=win32
            make & make install

二、按照方法一编译安装库,不仅编译过程复杂,且编译完成后,可能还不能用。可以直接到 http://win32builder.gnome.org/ 下载完整包解压进去,配置 msys/etc/profile 启动的pkg-cpnfig相关变量即可。

待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: mingw-w64是Windows下的一款开源编译器,支持开发C和C++应用程序。ZIP则是一种常见的压缩文件格式。因此,mingw-w64 zip 意味着将mingw-w64编译器压缩成zip格式供用户下载使用。 Mingw-w64 zip是一个方便快捷的方式,让用户能够更轻松地下载mingw-w64编译器。用户只需要下载一个zip文件,解压后就可以立即开始使用mingw-w64编译器,而不用手动安装和配置。 此外,Mingw-w64 zip的下载和使用过程也非常简单。用户只需在mingw-w64的官方网站或者其他下载网站找到mingw-w64 zip文件,然后下载并解压缩即可。 用户可以选择将解压后的mingw-w64文件夹放在任何位置,然后使用命令行或者第三方IDE配置环境变量,即可开始使用mingw-w64编译器。 总之,Mingw-w64 zip是一个非常方便的工具,能够方便用户下载和使用mingw-w64编译器,尤其对于需要快速搭建开发环境的开发者来说,是一个很好的选择。 ### 回答2: Mingw-w64是一个可以在Windows平台上进行编程的工具集合,它提供了许多开发者喜爱的C/C++编译器和相关工具,并支持许多不同的操作系统和体系结构。其mingw-w64 zip是mingw-w64的一个压缩文件,它包含了mingw-w64支持的各种操作系统和体系结构的编译器和工具。 通过下载mingw-w64 zip,开发者可以快速方便地安装和使用mingw-w64提供的工具,而无需在网上下载和安装各种依赖和工具。在下载完成后,开发者可以通过解压mingw-w64 zip来安装mingw-w64工具,然后将路径添加到系统环境变量,从而轻松地使用mingw-w64提供的各种功能和工具进行开发。同时,mingw-w64 zip还提供了详细的文档和示例,为开发者提供了许多学习和使用mingw-w64的资源。 总之,mingw-w64 zip是mingw-w64工具集的一个重要组成部分,它提供了开发者使用mingw-w64的极大便利,并为他们提供了一个简单而有力的工具来开发和部署自己的Windows应用程序。 ### 回答3: Mingw-w64是一个开源的工具包,用于构建Wi32和Wi64本地对象,以及在Windows平台上进行开发和编译。 Mingw-w64的zip是将Mingw-w64软件打包成zip文件,以便于下载和安装。 zip格式是一种常见的文件压缩格式,它能够有效地减小文件的大小,便于网络传输和存储。 Mingw-w64 zip文件可以到Mingw-w64项目网站上的下载页面下载并解压缩,也可以通过第三方源获取。 一旦解压缩,Mingw-w64 zip包含了完整的工具链,包括编译器、链接器、标准等文件。用户可以直接使用这些文件开始编写代码并进行编译和构建。 在使用Mingw-w64进行编程和构建应用程序时,zip格式的Mingw-w64工具可以为用户节省大量的时间和精力。 它让用户能够一次性获取到所有必需的文件,并且方便地进行安装和升级,使得开发过程更加高效和愉快。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-小蛙-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值