最近在做計算機圖形學大作業,需要在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檔案夾中就可以了,
測驗結果
搞了半天才把環境配好=.=,后面再慢慢研究字體的應用,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231580.html
標籤:其他
