【问题标题】:clozure cl: cl-freetype2 on windows 7clozure cl:Windows 7 上的 cl-freetype2
【发布时间】:2013-06-16 06:56:09
【问题描述】:

我正在使用安装了 quicklisp 的 clozure cl(版本 1.8-r15286m)在 Windows 7 64 位系统上工作。

我需要一些用于普通 lisp 的 freetype2 绑定。 (将字符映射到字形 + 字距调整信息)

我尝试使用

安装“cl-freetype2”
(ql:quickload "cl-freetype")

来自 32bit clozure cl,我遇到了几个问题。

  1. “grovel.lisp”(位于quicklisp/software/cffi_0.11.1/grovel/grovel.lisp)假设我在“c:/msys/1.0/bin/gcc.exe”处安装了gcc(我在路径中有mingw-gcc,但不在那里)。通过将“grovel.lisp”中的“c:/msys/1.0/bin/gcc.exe”替换为“gcc”来修复。
  2. 在尝试为 freetype2 编译 cffi 绑定时,在将包含目录传递给编译器时,同一文件不包含驱动器号(即,将 -i"d:/somedir" 传递给 gcc`,而不是 -i"d:/somedir")。
  3. “grovel.lisp”尝试包含 unix 包含目录。

我自己无法修复 #2。 我找到了this discussions,尝试了两个列出的补丁,但它们都不起作用。 (第一个破坏了 cffi,因为 ccl 既找不到“namestring-prefix”函数也找不到“pathname-prefix”函数),第二个没有解决问题。

在这种情况下我该怎么办? 我宁愿避免自己修复“groveller”,我只需要一些freetype2的绑定。 基本上,我需要能够

  1. 加载 truetype 字体。
  2. 将 unicode char 映射到字形。
  3. 获取字形对的字距调整信息。
  4. 加载字形位图。

有什么想法吗?

【问题讨论】:

  • 我会直接询问相关源代码的作者/维护者。

标签: windows common-lisp freetype ccl


【解决方案1】:

想通了。

通过 quicklisp 安装 cl-freetype2 需要完整的 MinGW 安装。

  1. 确保安装了 mingw-gmp。 (mingw-get install gmp)
  2. 确保 mingw/bin 目录在系统路径中(右键单击“我的电脑”-> 属性-> 高级-> 环境变量)。已设置。应该类似于“D:/development/MinGW/bin”(假设 MinGW 安装在“d:/development”中)。
  3. 在您的 ccl 安装中找到“grovel.lisp”,并将“c:/msys/1.0/bin/gcc.exe”替换为“gcc”。如果此处安装了 gcc,则不必这样做位置。
  4. 启动 mingw shell。
  5. 使用“.configure && make && make install”下载解压并安装最新的 Freetype2 tarball,类似于 unix 环境。
  6. 找到freetype-6.dll,将其复制到freetype.dll,并将freetype.dll移动到系统路径中的位置。
  7. (假设 MinGW 安装在“d:/development/MinGW”中),使用以下上下文创建 CPATH 用户环境变量:D:\development\MinGW\msys\1.0\local\include\freetype2;D:\development\MinGW\msys\1.0\local\include。也就是说 - 如果您在 freetype2 编译期间没有指定“/usr”前缀。
  8. 在 mingw shell 中,启动 wx86cl 并尝试 (ql:quickload "cl-freetype2")。它应该可以正常工作。
  9. 如果仍然无法正常工作,请在所有根驱动器中创建与安装 mingw 的目录的目录连接。 (即“c:/development”链接到“d:/development”等)。

我必须承认这很麻烦,所以我仍然认为创建一个小 dll 会更好,它提供了我在内部使用 freetype 时所需的最少功能集,然后使用 cffi 加载这个 dll。这应该会容易得多。

【讨论】:

    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2020-04-16
    • 2016-08-11
    • 2017-01-04
    • 2014-12-06
    • 1970-01-01
    相关资源
    最近更新 更多