MinGW,MSYS,GTK...编译libsvg,libsvg-cairo,...写一个svgviewer.exe
来源:互联网 发布:mac向上的箭头 编辑:程序博客网 时间:2024/06/05 23:39
一、MinGW,MSYS,GTK...编译libsvg,libsvg-cairo,...
1. 下载MinGW, MSYS, GTK等环境基础环境安装包,并安装。
a) MinGW, MSYS:
访问http://sourceforge.net/projects/mingw/files/ 。
选择“Download Now!MinGW-5.1.6.exe”、 展开MSYS Base System->msys-1.0.11,选择“MSYS-1.0.11.exe”。
安装使用缺省路径C:/MinGW和C:/msys/1.0
b) GTK合集
访问http://gladewin32.sourceforge.net/
下载 gtk-2.12.9-win32-2.exe、gtk-dev-2.12.9-win32-2.exe
安装使用缺省路径C:/GTK
c) gdb for MinGW
下载http://jaist.dl.sourceforge.net/sourceforge/mingw/gdb-5.2.1-1.exe
d) ActivePerl
访问http://www.activestate.com/activeperl/
下载ActivePerl-5.10.1.1006-MSWin32-x86-291086.msi
perl在编译pixman的时候会需要,而pixman并没有被缺省包含在gtk-dev-2.12.9-win32-2.exe程序中。
e) 依次安装上述程序,环境变量会被安装包自动设置。
2. 下载pixman、libsvg、libsvg-cairo并编译安装(cairo、libpng、libjpeg、zlib等已经被安装在C:/GTK中了)
a) pixman,访问http://cairographics.org/releases/ 下载(如前所述,pixman没有被gtk-dev-2.12.9-win32-2.exe打包进去,所以才自己编译)
pixman-0.17.2.tar.gz
b) 访问http://www.cairographics.org/snapshots/ 下载
libsvg-0.1.4.tar.gz
libsvg-cairo-0.1.6.tar.gz
c) 编译方法很简单,先解压,然后进入源代码主目录。依次运行
./configure --prefix=/c/GTK
make
make install
之所以使用--prefix=/c/GTK,是因为我希望把xxx.a库文件和包含头文件安装到/c/GTK/lib和/c/GTK/include目录下,这样文件目录比较整洁。
当你遇到“pkg-config找不到xxx库”时,不要慌张,在当前窗口键入以下命令再试试:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/mingw/lib/pkgconfig:/usr/local/lib/pkgconfig
3. 如果一切顺利,应该可以在C:/GTK/lib下看到libcairo.a、libsvg.a、libsvg-cairo.a和其它库文件,当然C:/GTK/include下也应该有相应的.h头文件。
二、编写一个查看svg的小程序svgviewer.exe
svgviewer至少需要调用gtk及cairo,并在窗口绘图的基础框架,所以我参考了cairo clock的教学文章和源码,然后加以发展。
http://gnomejournal.org/article/34/writing-a-widget-using-cairo-and-gtk28
文件清单如下:
svgviewer.h(由clock.h发展而来)
svgviewer.c(由clock-ex1.c发展而来)
svgviewer_main.c(由main.c发展而来)
makefile(自己写的)
注意:
在编写makefile过程中,因为错误信息被显示为乱码而不知所措,郁闷了很长时间。后来根据一篇解决MSYS下中文乱码问题的文章才将当前语言环境改为英文。
export LANG=en
或者设置环境变量LANG=en
后来才发现错误多半是 undefined reference to 'xxx_function',那么在gcc编译指令后加入-lxxx即可。
整个研究过程远比文章要来的复杂。比如我是在经历了windows的失败痛苦之后,先在ubuntu下获得成功经验,才回到windows下开发成功的。
分享源码如下:
[svgviewer.h]
[svgviewer.c]
[svgviewer_main.c]
[makefile]
该程序使用方法:
./svgviewer.exe tiger.svg
就能看到经典的老虎
- MinGW,MSYS,GTK...编译libsvg,libsvg-cairo,...写一个svgviewer.exe
- mingw+msys+GTK编译
- Msys+MinGW编译VLC
- ffmpeg编译 MingW + MSYS
- 使用msys;mingw编译openldap
- MinGW(msys 1.0) 编译 splint
- Msys+MinGW编译VLC1.1.11
- Windows下使用MinGW+msys编译ffmpeg-2.6.3,没生成ffplay.exe
- 在msys/MinGW环境下编译gstreamer
- (MSys+MinGW )FFmpeg工程编译 FFplay
- win32 + windows + mingw + msys 编译ACE
- window下应用msys/mingw编译openvpn
- windows MinGW MSYS下编译clutter
- MinGw+Msys搭建环境 编译ffmpeg
- 使用minGW+msys 编译ffmpeg 0.5
- mingw+msys+eclipse编译调试ffmpeg
- ffmpeg 编译 命令(windows+MSYS+MinGW)
- windows下使用MinGW+msys编译ffmpeg
- 关于xp英文版安装多国语言包的问题
- Struts2上传文件带中文名时.图片显示会出现%乱码解决
- vista&windows7下命令行结束进程
- nginx及php安装杂记
- 将EXCLE数据导入MYSQL
- MinGW,MSYS,GTK...编译libsvg,libsvg-cairo,...写一个svgviewer.exe
- 一个好的yum源
- 中秋记
- vsftp write enable
- 趣味编程:从字符串中提取信息(C语言版本)
- apache support for php5
- machine `x86_64-unknown' not recognized
- sudo: must be setuid root
- You need to use --log-bin to make --binlog-format work.