Matplotlib:在 Solaris 10 上编译 Matplotlib

日期2009-01-10(最后修改),2006-01-22(创建)

如何安装 Sun Studio在 Solaris 10 上构建 Matplotlib 可能提供一些提示。

JDH 说

嗨,Erik - 如果你成功了,那么我们将有令人信服的证据证明,在 Solaris 上编译 mpl 比放弃调味汁更容易。

好吧,事实证明它比放弃调味汁更容易(至少对我来说),但这仅仅是勉强。最终,修复方法非常简单(如果你认为重新编译 Python 并手动调整自动生成的 pyconfig.h 非常简单的话)。经过两天不间断地注释掉这里那里,以 76 种不同的方式从星期天开始重新编译所有东西及其母亲,仔细研究了大量的 Solaris 系统包含文件,屠杀了几个洁白无瑕的羔羊和一只纯黑色的绵羊,将骨头、肌腱和内脏包裹在双层脂肪中,并将祭品烧给德尔斐的阿波罗,我找到了答案

1 下载 Python 2.4.2

2 解压缩后运行 ./configure,编辑生成的 pyconfig.h 如下

 i) if _XOPEN_SOURCE is defined to be 600 (i.e., if the line "#define _XOPEN_SOURCE 600" appears in the file), redefine it to 500

 ii) if _XOPEN_SOURCE_EXTENDED is defined at all (i.e. if the line "#define _XOPEN_SOURCE_EXTENDED 1" appears in the file), comment out its definition

3 make && make install

问题在于 Solaris 对 X/Open 标准的支持。长话短说,你只能在使用 ISO C99 编译器的情况下使用 Open Group Technical Standard,Issue 6(XPG6/UNIX 03/SUSv3)(_XOPEN_SOURCE == 600)。如果你使用 X/Open CAE Specification,Issue 5(XPG5/UNIX 98/SUSv2)(_XOPEN_SOURCE == 500),则无需使用 ISO C99 编译器。有关详细信息,请参阅 Solaris 头文件 /usr/include/sys/feature_tests.h。

这就是为什么 muhpubuh(也称为 matplotlib——长话短说)如果拥有巨额资金并且能够负担 Sun 的 OpenStudio 10 编译器,它可以在 Solaris 10 上编译。gcc 尚未完全支持 C99。特别是,它缺乏对宽字符库的支持,导致构建失败。(例如,参见 http://gcc.gnu.org/c99status.html。)

关于 Python.h 和 Solaris 中的 wchar 问题的更多有用链接

章节作者:AndrewStraw,Unknown[83],Unknown[89]