MinGW 编译zlib、libpng、libjpeg等
来源:互联网 发布:java cmd 运行jar包 编辑:程序博客网 时间:2024/06/06 11:31
转自:http://blog.csdn.net/akof1314/article/details/17034887
MinGW
这里使用的是Qt5自带的MinGw版本,将路径D:\Qt\Qt5.1.0\Tools\mingw48_32\bin加到"环境变量"→"系统变量"→"Path"
命令行输入:
可看到gcc版本为:gcc version 4.8.0 (rev2, Built by MinGW-builds project)
MSYS
下载地址:http://www.mingw.org/wiki/MSYS
当前版本:1.0.11
一路安装下去即可
zlib
下载地址:http://www.zlib.net/
当前版本:1.2.8
命令行输入:
2
mingw32-make -f makefile.gcc
生成libz.a文件
libpng
下载地址:http://www.libpng.org/pub/png/libpng.html
当前版本:1.6.6
打开scripts/makefile.gcc设置zlib路径:
2
ZLIBLIB = ../zlib-1.2.8
拷贝scripts/pnglibconf.h.prebuilt到源码目录,改名为pnglibconf.h
命令行输入:
2
mingw32-make -f makefile.gcc
生成libpng.a文件
libjpeg
下载地址:http://www.ijg.org/
当前版本:9
打开MSYS (rxvt),输入:
2
3
./configure
make
若是出现以下错误:
2
jpeg_suppress_tables (j_compress_ptr cinfo, boolean suppress)
打开jconfig.h,增加以下定义:
重新输入:
在.libs文件夹下生成libjpeg.a文件
libtiff
下载地址:ftp://ftp.remotesensing.org/pub/libtiff
当前版本:4.0.3
编译依赖zlib和libjpeg,打开jpeg-9/jconfig.h,定义如下:
2
#define HAVE_UNSIGNED_SHORT
打开MSYS (rxvt),输入:
接着输入:
在libtiff/.libs文件夹下生成libtiff.a文件
libiconv
下载地址:http://www.gnu.org/software/libiconv/
当前版本:1.14
打开MSYS (rxvt),输入:
2
3
./configure
make
在lib/.libs文件夹下生成libiconv-2.dll和libiconv.dll.a文件,这是动态库。
GLEW
下载地址:http://glew.sourceforge.net/
当前版本:1.10.0
打开Makefile,更改SYSTEM变量为:
命令行输入:
在lib文件夹生成libglew32.a、libglew32.dll.a和glew32.dll文件
MinGW使用-lxxx来链接库的时候,搜索库的顺序如下:
2
3
4
5
6
xxx.dll.a
libxxx.a
cygxxx.dll (*)
libxxx.dll
xxx.dll
测试使用,新建Qt工程,pro内容如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
QT -= gui
TARGET = testc11
CONFIG += console
CONFIG -= app_bundle
CONFIG += c++11
TEMPLATE = app
# 链接GLEW静态库版本时开启
#DEFINES += GLEW_STATIC
INCLUDEPATH += E:/MyControl/glew-1.10.0/include
LIBS += -lglew32 -lopengl32 -LE:/MyControl/glew-1.10.0/lib
SOURCES += main.cpp
main.cpp内容如下:
2
3
4
5
6
7
8
9
#include <QCoreApplication>
int main(int argc, char *argv[])
{
glewInit();
QCoreApplication a(argc, argv);
return a.exec();
}
编译运行成功,它链接的是libglew32.dll.a,运行需要glew32.dll动态库支持。接下来测试链接静态库,取消pro文件里面的注释,然后将E:\MyControl\glew-1.10.0\lib文件夹下的libglew32.dll.a文件暂时移出此文件夹,以防止被链接到。重新编译运行,此时链接到了静态库libglew32.a文件。
libwebp
下载地址:https://developers.google.com/speed/webp
当前版本:0.3.1
打开makefile.unix文件,注释掉以下四行,如下:
2
3
4
#DWEBP_LIBS= -lpng -lz
#CWEBP_LIBS= $(DWEBP_LIBS) -ljpeg -ltiff
#GIF_LIBS = -lgif
命令行输入:
在src文件夹下生成libwebp.a文件
libcurl
下载地址:http://curl.haxx.se/
当前版本:7.33.0
命令行输入:
在lib文件夹下生成libcurl.a文件
测试静态库使用,新建Qt工程,pro内容如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
QT -= gui
TARGET = testc11
CONFIG += console
CONFIG -= app_bundle
CONFIG += c++11
TEMPLATE = app
DEFINES += CURL_STATICLIB
INCLUDEPATH += E:/MyControl/curl-7.33.0/include
LIBS += -LE:/MyControl/curl-7.33.0/lib -lcurl -lws2_32 -lwldap32
SOURCES += main.cpp
main.cpp内容如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <QCoreApplication>
int main(int argc, char *argv[])
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
QCoreApplication a(argc, argv);
return a.exec();
}
编译运行,可见打印出了网页源码。
FreeType
下载地址:http://www.freetype.org
当前版本:2.5.0
打开MSYS (rxvt),输入:
2
3
./configure --without-png
make
在objs\.libs文件夹下生成libfreetype.a文件
参考资料:
1.在 mingw 下编译 libHaru http://kingsz1.iteye.com/blog/543787
2.NDK在windows下编译libpng http://www.scottcgi.com/2012/12/31/ndk%E5%9C%A8windows%E4%B8%8B%E7%BC%96%E8%AF%91libpng/
3.mingw_how_to http://www.gaia-gis.it/spatialite-2.4.0/mingw_how_to.html
4.compile libjpeg with mingw http://stackoverflow.com/questions/13087749/compile-libjpeg-with-mingw
5.Using ld, the Gnu Linker https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Using_ld_the_GNU_Linker/win32.html
- MinGW 编译zlib、libpng、libjpeg等
- MinGW 编译zlib、libpng、libjpeg等
- MinGW 编译zlib、libpng
- 编译libjpeg和libpng
- windows下使用cmake编译zlib与libpng libjpeg 留此备份
- VS 编译libpng和zlib
- 交叉编译libpng和zlib
- mingw编译zlib
- mingw 编译zlib库
- mingw(gcc)编译libjpeg-turbo
- 交叉编译libpng和libjpeg库
- zlib交叉编译,libpng交叉编译
- Ubuntu下交叉编译zlib,libpng,freetype
- 交叉编译libpng以及zlib开源库
- linux下编译GD(freetype+libjpeg+libpng+gd-devel)
- linux下编译GD(freetype+libjpeg+libpng+gd-devel)
- Visual studio中编译和使用libpng和zlib
- Windows下zlib和libPng库的编译及使用
- 系统监控之SNMP协议理解
- Linux学习:计算机和操作系统的基础知识。
- 用*表示sin与cos图像以及组合
- Ubuntu Server 14.04 静态IP简单配置
- 写入一个DateServlet,输入当前的系统日期
- MinGW 编译zlib、libpng、libjpeg等
- AngularJS 表达式
- Java 常用框架(Spring,SpringMVC,Hibernate,mybatis)整合
- eclispe中如何通过git向开源中国(码云)上传代码
- delphi txmldocument报错 no active document
- html5基础标签
- OpenGL ES 光照效果
- 优雅编程之这样使用泛型,你就“正常”了(三十三)
- H5_Node2_视频&音频