博客
关于我
MinGW 编译zlib、libpng、libjpeg等
阅读量:153 次
发布时间:2019-02-27

本文共 2181 字,大约阅读时间需要 7 分钟。

在 MinGW 环境下编译常用库

1. 安装 MinGW 和 Qt

首先,确保 MinGW 和 Qt 已经安装。MinGW 提供了 gcc 和其他开发工具,可以通过以下路径添加到环境变量:

  • 路径添加D:\Qt\Qt5.1.0\Tools\mingw48_32\bin

确保 Path 环境变量中包含此路径。

2. 安装依赖库

2.1 安装 Zlib

  • 下载地址zlib 1.2.8
  • 安装步骤
  • 提取压缩包
  • 打开 MSYS(rxvt),输入以下命令:
    cd /f/mycode/mysvn/zlib-1.2.8
    ./configure
    make
  • 生成文件:在 zlib-1.2.8/.libs 文件夹下生成 libz.a 文件。

2.2 安装 Libpng

  • 下载地址libpng 1.6.6
  • 安装步骤
  • 提取压缩包
  • 打开 MSYS,输入以下命令:
    cd /f/mycode/mysvn/png-1.6.6
    ./configure --with-zlib-include-dir=/f/mycode/mysvn/zlib-1.2.8
    make
  • 生成文件:在 png-1.6.6/src 文件夹下生成 libpng.a 文件。

2.3 安装 Libjpeg

  • 下载地址libjpeg 9
  • 安装步骤
  • 提取压缩包
  • 打开 MSYS,输入以下命令:
    cd /f/mycode/mysvn/jpeg-9
    ./configure
    make
  • 生成文件:在 jpeg-9/.libs 文件夹下生成 libjpeg.a 文件。

2.4 安装 Libtiff

  • 下载地址libtiff 4.0.3
  • 安装步骤
  • 提取压缩包
  • 打开 MSYS,输入以下命令:
    cd /f/mycode/mysvn/tiff-4.0.3
    ./configure --with-zlib-include-dir=/f/mycode/mysvn/zlib-1.2.8 --with-jpeg-include-dir=/f/mycode/mysvn/jpeg-9
    make
  • 生成文件:在 tiff-4.0.3/.libs 文件夹下生成 libtiff.a 文件。

2.5 安装 Libiconv

  • 下载地址libiconv 1.14
  • 安装步骤
  • 提取压缩包
  • 打开 MSYS,输入以下命令:
    cd /f/mycode/mysvn/libiconv-1.14
    ./configure
    make
  • 生成文件:在 libiconv-1.14/.libs 文件夹下生成 libiconv-2.dlllibiconv.dll.a 文件。

2.6 安装 Glew

  • 下载地址Glew 1.10.0
  • 安装步骤
  • 提取压缩包
  • 打开 Makefile,修改 SYSTEM 变量为 mingw
  • 在 MSYS 中输入以下命令:
    mingw32-make -f Makefile
  • 生成文件:在 lib 文件夹下生成 libglew32.alibglew32.dll.aglew32.dll 文件。

2.7 安装 Libcurl

  • 下载地址Libcurl 7.33.0
  • 安装步骤
  • 提取压缩包
  • 在 MSYS 中输入以下命令:
    mingw32-make mingw32
  • 生成文件:在 lib 文件夹下生成 libcurl.a 文件。

3. 代码示例

在 Qt 项目中,添加以下内容到 pro 文件中:

QT += core
QT -= gui
TARGET = testc11
CONFIG += console
CONFIG -= app_bundle
CONFIG += c++11
TEMPLATE = app
DEFINES += GLEW_STATIC
INCLUDEPATH += E:/MyControl/glew-1.10.0/include
LIBS += -LE:/MyControl/glew-1.10.0/lib -lcurl -lws2_32 -lwldap32

main.cpp 内容示例:

#include "GL/glew.h"
#include
int main(int argc, char *argv) {
glewInit();
QCoreApplication a(argc, argv);
return a.exec();
}

4. 常见错误处理

如果出现以下错误:

jcapimin.c:127:1: error: conflicting types for 'jpeg_suppress_tables'

请按照以下步骤解决:

  • 打开 jconfig.h,添加以下定义:
    #define HAVE_PROTOTYPES 1
  • 重新编译项目。
  • 5. 注意事项

    • 依赖顺序:在 MinGW 中使用 -lxxx 链接库时,搜索库的顺序为:

      libxxx.dll.a
      xxx.dll.a
      libxxx.a
      cygxxx.dll* (使用 cygwin)
      libxxx.dll
      xxx.dll
    • 动态库测试:新建 Qt 项目,确保动态库路径正确,测试链接和运行无误后,才进行静态库测试。

    通过以上步骤,可以在 MinGW 环境下顺利编译和测试所需的库文件。

    转载地址:http://vuid.baihongyu.com/

    你可能感兴趣的文章
    nginx负载均衡的5种策略(转载)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    Nginx运维与实战(二)-Https配置
    查看>>
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>
    Nginx配置——不记录指定文件类型日志
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    Nginx配置参数中文说明
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>