VS2017下配置Freetype流程

最近在做计算机图形学大作业,需要在opengl中使用freetype字体库,配置环境过程遇到了一些坑,网上一些博客的配置教程比较简短和古老,这里记录一下自己的配置过程和解决方案,博主自己也是个C++小白,配置过程也是摸索认识C++工程的过程。

VS2017下Freetype的配置流程

Freetype下载

Freetype字体库下载地址:https://www.freetype.org/download.html
在这里插入图片描述
我是用的第一个地址直接下载压缩包并解压
在这里插入图片描述

Freetype编译

1.使用VS打开下图路径的freetype.sln在这里插入图片描述

2.因为我opengl配置的32位,这里的解决方案平台选择Win32,如果是需要64位就改成x64
在这里插入图片描述
3.点击生成-生成解决方案,如果可以在(freetype路径)\objs\Win32\Debug\路径下找到freetype.dll和freetype.lib,说明编译成功。

自己项目配置freetype

打开自己的项目解决方案(sln文件),点击项目-项目属性,依次作如下操作:
1.添加包含目录
点击:VC++目录-包含目录,添加路径:(freetype路径)\include
在这里插入图片描述
2.添加库目录
点击:VC++目录-库目录,添加路径:(freetype路径)\objs\Win32\Debug

3.添加附加依赖项
点击:链接器-输入-附加依赖项,添加路径:(freetype路径)\objs\Win32\Debug\freetype.lib
在这里插入图片描述
4.点击确定保存配置

测试

1.因为freetype开发方式,把动态库的头文件freetype.h封装在了宏FT_FREETYPE_H下,需要用如下代码调用

#include <ft2build.h>
#include FT_FREETYPE_H

编写测试代码,注意字体ttf文件路径设置,使用相对路径要把文件放到cpp所在目录下,我使用的ttf文件是learnopengl提供的,可以换成自己有的字体。

#include <ft2build.h>
#include FT_FREETYPE_H
#include <iostream>
using namespace std;
int main()
{
    
     
	FT_Library library;
	FT_Init_FreeType(&library);
	FT_Face face;
	FT_New_Face(library, "resources/fonts/Antonio-Bold.ttf", 0, &face);
	cout<<"num_glyphs:"<<face->num_glyphs<<endl;
	cout<<"num_faces:"<<face->num_faces<<endl;
	system("Pause");
	return 0;
}

2.直接运行会有下图报错将(freetype路径)\objs\Win32\Debug\freetype.dll

在这里插入图片描述
搜了不少资料,发现这个报错通常是lib链接dll失败,或者32、64位版本不对的问题。因为我opengl配置的是32位的,第一反应是动态库的版本不对,按照网上办法检查了一遍依赖dll和适应版本,发现都适应32位,白忙活一通。

之后就去搜如何添加dll,如何使用外部dll,结果发现是需要将外部dll文件放在可执行文件(.exe)的目录中(Debug),这里就是把freetype.dll放入项目生产的Debug文件夹中就可以了。

测试结果

搞了半天才把环境配好=.=,后面再慢慢研究字体的应用。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/why1921487875/article/details/110846384
今日推荐