关于 Mac 自带的 Cairo, libpng

Cairo
=====

最近在编译一些 graphics 有关的程序碰到了这个问题:Mac 自带了 Cairo 库, 但是版本已经很老了 (1.8.6).
许多程序都要求 >= 1.10.0
从brew里安装了新的 cairo, 由于brew为了防止破坏原先系统上的软件依赖, 因此没有为pkg-config安装对应的 .pc 文件.
因此, 我在编译 pycairo 时, 还是会找到旧的 cairo.
解决方法很简单, 当需要用到新版本cairo时, 可以:

1. export PKG_CONFIG_PATH=/path/to/cairo/pc/file 这样, pkg-config就会找到新版本cairo的.pc文件.
2. 使用正确的 LDFLAGS 和 CPPFLAGS 进行编译.

由于 pycairo 使用了一个叫 waf 的东西进行编译, 而我有又没找到在哪里定义方法2所提到的变量,
因此只能使用方法1.

libpng
=======
Mac 自带了 X11.app (也叫 XQuartz), 是 Apple 版本的 X11, 基于 Xorg. 里面自带了 libpng 1.2.
最新版本的 XQuartz 使用了 libpng 1.4. 但是安装了它会造成许多 confusion. 而旧的 X11.app 用起来也没什么大问题.
于是最好把新的 XQuartz 卸载掉.
具体方法见:
http://xquartz.macosforge.org/trac/wiki/X11-UsersFAQ

主要是:

sudo rm -rf /opt/X11* /Library/Launch*/org.macosforge.xquartz.* /Applications/Utilities/XQuartz.app /etc/*paths.d/*XQuartz

sudo pkgutil –forget org.macosforge.xquartz.pkg

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: