【问题标题】:Trying to build pycairo on mac 10.8尝试在 mac 10.8 上构建 pycairo
【发布时间】:2012-11-17 10:10:48
【问题描述】:

我有两个 Python 安装。操作系统自带的和我手动下载安装的,都是2.7的。

我手动下载的是我的默认 Python。 which python返回

/Library/Frameworks/Python.framework/Versions/2.7/bin/python

我已经手动安装了 Cairo。

然后我下载了py2cairo,进入目录并运行./waf configure,然后返回...

  ./set_options
  ./init
  ./configure
Checking for program gcc or cc           : /usr/bin/gcc 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for gcc                         : ok  
Checking for program python              :/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python 
Checking for Python version >= 2.6.0     : ok 2.7.3 
Checking for library python2.7           : yes 
Checking for program python2.7-config    :/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config 
Checking for header Python.h             : yes 
Checking for cairo >= 1.8.10             : yes 
'configure' finished successfully (0.978s)
  ./shutdown

但是后来我尝试做./waf build,我得到了这个错误

     ./set_options
  ./init
Waf: Entering directory '/Users/jose/Downloads/pycairo-build'
  ./build
  src/build
[7/9] cc: src/surface.c -> ../pycairo-build/default/src/surface_2.o
In file included from ../pycairo-1.8.10/src/surface.c:1360:
/usr/local/include/cairo/cairo-xlib.h:44:22: error: X11/Xlib.h: No such file or directory
In file included from ../pycairo-1.8.10/src/surface.c:1360:
/usr/local/include/cairo/cairo-xlib.h:49: error: expected ‘)’ before ‘*’ token
/usr/local/include/cairo/cairo-xlib.h:56: error: expected ‘)’ before ‘*’ token
/usr/local/include/cairo/cairo-xlib.h:69: error: expected declaration specifiers or ‘...’ before ‘Drawable’
/usr/local/include/cairo/cairo-xlib.h:73: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/local/include/cairo/cairo-xlib.h:77: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_xlib_surface_get_drawable’
/usr/local/include/cairo/cairo-xlib.h:79: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/local/include/cairo/cairo-xlib.h:82: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
Waf: Leaving directory `/Users/jose/Downloads/pycairo-build'
Build failed:  -> task failed (err #1): 
    {task: cc surface.c -> surface_2.o}

有什么想法吗?

【问题讨论】:

    标签: python cairo pycairo


    【解决方案1】:

    X-Windows 文件位于“/usr/X11R6”中。如果您没有该目录,则说明您没有安装 X-Windows 开发包。

    https://trac.macports.org/wiki/InstallingMacPorts#a2.InstallXWindowsX11

    【讨论】:

    • 谢谢,我已经安装了X11,还是不行……需要链接吗?
    • X11 SDK 是 Apple 开发者工具安装程序的一部分,现在称为 Xcode Tools(developer.apple.com/xcode)。那么你是否安装了包含所有可用选项的 Xcode????
    • 是的,做到了。我确实安装了它,但迁移到 Mountain Lion 后卸载了它。所以我又做了一次,它奏效了!!谢谢。