我找到了关于编译与 Harfbuzz 相关的 Freetype 的已知问题的良好文档:http://www.gregwessels.com/dev/2017/05/02/freetype-harfbuzz.html http://www.gregwessels.com/dev/2017/05/02/freetype-harfbuzz.html和这里44184890 https://stackoverflow.com/questions/44184890/compiling-freetype/49782391#49782391
但现在它们似乎已经过时了:freetype-2.9 和 harfbuzz-1.7.6
这是我的编译方式:
- 下载Freetype 压缩包 https://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.bz2
- 提取压缩包...
- 打开 builds\windows\vc2010\freetype.sln
- 它应该已经生成良好(作为 dll)
- 下载Harfbuzz https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-1.7.6.tar.bz2
- 提取 freetype 旁边的 tarball...
- run
cmake ./
在根级别获得.sln
- 它必须已经生成好(如lib)
此时,您有 2 个独立的库无法一起工作,这意味着:
Freetype 不会打开您字体的 GSUB 脚本。(或者也许我错了)
为此,我需要帮助!我也需要确认!!!
似乎需要在编译时在 Freetype 中启用 Harfbuzz;我发现了一个名为的预编译器指令FT_CONFIG_OPTION_USE_HARFBUZZ
但是当激活它时,在第三个项目中使用这两个库时出现一些编译链接错误:
autofit.obj : error LNK2019: external symbol not found _hb_ft_font_create referenced in function _af_face_globals_new
很高兴知道,hb_ft_font_create
是 harfbuzz 中的外部函数。
所以这似乎是一个循环外部问题...我当然没有良好的配置,但我浏览了很多文档和帮助,但什么也没发现...
- 编辑 -
两个项目解压后,通常都会得到这样一棵树:
.
├── freetype-2.9
│ ├── autogen.sh
│ ├── builds
│ │ ├── ...
│ │ └── windows
│ │ └── vc2010 <<<< The .sln to use is in here
│ ├── CMakeLists.txt <<<< It is also good to obtain proper sln
│ ├── configure
│ ├── devel
│ │ ├── ft2build.h
│ │ └── ftoption.h
│ ├── include
│ │ ├── freetype
│ │ └── ft2build.h
│ ├── ...
│ ├── objs
│ │ ├── freetype.dll
│ │ ├── freetype.lib
│ │ ├── README
│ │ └── Win32
│ ├── README
│ ├── README.git
│ └── src
└── harfbuzz-1.7.6
├── ...
├── cmake_install.cmake
├── CMakeLists.txt <<<< The cmake project to obtain proper sln is this one
├── compile
├── ...
├── COPYING
├── CTestTestfile.cmake
├── Debug
│ ├── harfbuzz.lib
│ ├── harfbuzz-subset.lib
│ └── ...
├── depcomp
├── docs
├── gtk-doc.make
├── harfbuzz.sln
├── harfbuzz.vcxproj
├── ...
├── main.dir
│ └── Debug
├── NEWS
├── README
├── README.python
├── RELEASING.md
├── replace-enum-strings.cmake
├── RUN_TESTS.vcxproj
├── RUN_TESTS.vcxproj.filters
├── src
│ ├── *.hh
│ └── *.cc
├── test
├── THANKS
├── TODO
├── util
└── Win32
└── Debug