我已经找到了有关编译与Harfbuzz相关的Freetype的已知问题的良好文档:http://www.gregwessels.com/dev/2017/05/02/freetype-harfbuzz.html和此处44184890
但如今它们似乎已经过时了:带有harfbuzz-1.7.6的freetype-2.9
这是我的编译方式:
cmake ./
以获取.sln
此时,您有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
最佳答案
只需使用https://github.com/Microsoft/vcpkg/即可安装它们,不要回头:) HarfBuzz和Freetype都具有一个端口,并且受到很好的支持。
关于循环依赖性,从FreeType到HarfBuzz的依赖性并不是必须考虑的。 vcpkg
将HarfBuzz处理为FreeType依赖项,这是大多数项目所需要的。
关于c++ - 如何编译Freetype(2)和Harfbuzz(使用Visual Studio)以使其协同工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49896474/