linux从源码编译cairo,如何在windows下编译cairo
cairo 是一个免费的矢量绘图软件库,它可以绘制多种输出格式。cairo 支持许多平台,如 Linux、BSD、OSX等,当然,还有 Windows。
cairo 官网提供了在 windows 下的编译方法,详情可戳这里。尽管它给出了看起来很详细的步骤,但在实际编译中,你有可能会遇到各种各样的问题。
我们先从官网的步骤开始。
下载并编译 zlib .
下载并编译 libpng .
安装 MozillaBuild编译环境。( 注意安装路径下不要有空格) .
找到 MozillaBuild 的安装路径,找到 VC++ 对应版本的启动脚本,如start-shell-msvc2015.bat,按官网给出的方式进行修改,定义出 zlib \ libpng 等 lib、include 等的路径 .
运行修改后的 bat,到 pixman 所在路径下,运行 make 命令进行编译 .
make -f Makefile.win32 CFG=release
1
make -f Makefile.win32 CFG=release
进行到这一步的时候,基本就无法进行下去了。因为在这一步开始就会出现各种各样的错误
下面我们将从这里开始,一步一步完成cairo的编译。
1. 修改MozillaBuild脚本:
打开 VS 版本对应的 bat 文件,注意MOZ_MSVCBITS 的值 :这里将值改为 32。我们将编译 32 位版本。
打开 start-shell.bat 。在 “REM Reset some env vars and set some others.” 内容下方,按照官网上给出的方式,指定 zlib, libpng 的 lib 和 include 所在路径。
如果你的PC是 64 位,那么 MozillaBuild 会默认使用 64 的 VS 进行编译,可能会引发平台不匹配的问题。此时需要将 “REM Prepend MSVC paths.” 下面的
SET TOOLCHAIN=64-bit cross-compile
1
SET TOOLCHAIN=64-bit cross-compile
改为
SET TOOLCHAIN=32-bit cross-compile
1
SET TOOLCHAIN=32-bit cross-compile
2. 修改 pixman-version.h.in
进入 pixman/pixman 文件夹下,修改 @PIXMAN_VERSION_MAJOR@ , @PIXMAN_VERSION_MINOR@ , @PIXMAN_VERSION_MICRO@ 的值为对应的版本号。
这里有一份修改好的文件,版本号为 0.35.1 ,可直接取用
git clone https://git.oschina.net/wandoer/pixmanversionheader.git
1
git clone https://git.oschina.net/wandoer/pixmanversionheader.git
3. 编译pixman
运行start-shell-msvc2015.bat ,转到 pixman 路径下,运行
make -f Makefile.win32 CFG=release
1
make -f Makefile.win32 CFG=release
如果成功,则 pixman/pixman 路径下有 release 文件夹,内有 pixman-1.lib
4. 修改Makefile.win32.common
在 cairo/build/ 路径下找到 Makefile.win32.common 文件,指定 zlib 和 libpng 所在的路径( ZLIB_PATH 和 LIBPNG_PATH)。
修改 zdll.lib 为 zlib.lib。
5. 编译 cairo
转到 cairo/ 路径下运行命令:
make -f Makefile.win32 CFG=release
1
make -f Makefile.win32 CFG=release
如不出意外,此步应编译成功
6. 提取 include 头文件
在 cairo/ 路径下,添加以下脚本并执行:
mkdir -vp include
cp ./src/cairo-features.h include/
cp ./src/cairo.h include/
cp ./src/cairo-deprecated.hinclude/
cp ./src/cairo-win32.hinclude/
cp ./src/cairo-script.hinclude/
cp ./src/cairo-ps.hinclude/
cp ./src/cairo-pdf.hinclude/
cp ./src/cairo-svg.hinclude/
cp./cairo-version.hinclude/
1
2
3
4
5
6
7
8
9
10
mkdir -vp include
cp ./src/cairo-features.h include/
cp ./src/cairo.h include/
cp ./src/cairo-deprecated.hinclude/
cp ./src/cairo-win32.hinclude/
cp ./src/cairo-script.hinclude/
cp ./src/cairo-ps.hinclude/
cp ./src/cairo-pdf.hinclude/
cp ./src/cairo-svg.hinclude/
cp./cairo-version.hinclude/
至此,cairo 的编译已经完成。
linux从源码编译cairo,如何在windows下编译cairo相关推荐
- 如何在Windows下编译OpenSSL?
OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- 如何在Windows下编译OpenSSL
OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人员而言 ...
- 记录 Windows 下编译一个开源 SM9 签名验签 C 程序的过程
注:本文不讨论算法具体实现细节,只介绍如何编译一个现有的程序实现. 在商用密码检测中心( 链接:http://www.scctc.org.cn/index.aspx )的网站上,"下载中心& ...
- Windows下编译OpenSSL(使用VS2013或VS2008)
转自https://www.cnblogs.com/findumars/p/4299976.html 简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和 ...
- windows 下编译 DSview 记录
由于sigrok 界面太土,太难用,就想把DSview编译到windows下, 主要是windows用的人多啊. DSview 有mac 版本, linux版本, windows版本, 但是wind ...
- windows下编译以及运行cryptominisat 求解器(sat求解器)
cryptominisat是由msoos所开发的一款sat求解器,sat的具体问题另外一篇博客里有详细介绍点击打开链接,本篇文章只介绍如何在windows下运行cryptominisat,将自己遇到的 ...
- 在Windows下编译OpenSSL(VS2005)【转】
如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器) 1.安装ActivePerl//初始化的时候,需要用到perl解释器 2.使用VS2005下的Visual Studi ...
- 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码
前言 公司项目中使用的libvlcjni.so库文件,有点老,对Android 6.0+系统兼容性太差了,当程序运行在Android6.0+系统上时,回弹出警告框,提示libvlcjni.so:tex ...
- NanoPi NEO Air使用七:获取并编译U-boot和Linux的源码
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
最新文章
- 比特币官网管理者因支持BCH被建议移交权限
- Leetcode: Balanced Binary Tree
- html兄弟选择器怎么用,CSS的相邻兄弟选择器用法示例讲解
- 单例模式,双重检查实现线程安全
- TypeScript 4.0 发布
- csv 字符串_Python实现json转csv格式
- 信息学奥赛一本通 2045:【例5.13】蛇形填数
- 唯有拼搏不负君(送年轻人8句话)
- try catch finally return
- postgresql-窗口函数使用
- 23007 2017-2018-2 《程序设计与数据结构》第2周学习总结
- Unity 打包微信
- Audition CC 2019 Essential Training AuditionCC 2019基本训练 Lynda课程中文字幕
- 一周信创舆情观察(9.27~10.10)
- python+opencv代码给证件照换底色
- 数值分析实验(四)之方程求根的数值方法
- I2C中的10bit地址读写
- 关于同构关系的一些证明(1)
- java接口里面可以定义变量么?
- 记录前端导出word 本地图片不显示问题
热门文章
- C++ 将二叉树以前序遍历的顺序转换成链表
- Polkadot(波卡)简介
- 安卓zip解压软件_手机压缩软件ZArchiver下载、使用教程丨免费、中文,支持7z、zip、rar等所有格式...
- 用MFC编程时在源文件里经常看到的AFX或afx是什么意思?
- 永磁同步直线电机驱动控制原理与matlab建模仿真
- 火车运煤问题(马车运草)问题
- 用JAVA制作抓老鹰游戏_Java制作最难练手速游戏,Faker都坚持不了一分钟
- Python框架:Django写图书管理系统(LMS)
- 【windows】在控制面板卸载软件的时候,出现2502,2503的问题
- VMX(1) -- 简介