FreeTypeをコンパイルのソースを表示
新しいページはコチラ
移動:
案内
,
検索
== '''概要''' == PDFで日本語フォントを埋め込みたい!というところに端を発して、フォントファイルの操作をするべくFreeTypeをコンパイルできるような環境を構築してみようという作業です。 2022年8月現在 Windows10 の Visual Studio 2019を使っての作業です。 === '''FreeTypeに必要なアプリlibpngとzlibのビルド方法''' === [https://freetype.org/ FreeType]は現在 Version1.12.1 で カラー絵文字の操作を含めるなら [https://sourceforge.net/projects/libpng/files/ libpng] ライブラリが必要とのこと。さらには[zlib https://github.com/madler/zlib/tree/v1.2.8]も必要なんだって。道のり長くなっていくなぁ。zlibの最新版を最初はダウンロードしたんだけど、カスタムビルドステップの *Win32 :cd ..\..\masmx86 :bld_ml32.bat *x64 :cd ..\..\masmx64 :bld_ml64.bat を実行する部分があって、そのファイルが同梱されていない。なので、GitHubにある1.2.8をDownloadしました。大丈夫かな。 ソリューション全体がzlib - 1.2.8とかいうフォルダにあるのを単純にzlibという名前に変更して、これからlibpngのライブラリをしたりする作業用のディレクトリにおいてVisual Studioで、ビルドします。zlibとする名前の変更と同じフォルダにおくという作業によって、のちの作業となるlibpngソリューションの中のzlibvcプロジェクトのパスが解決され、作業がしやすくなります。 ではzlibをビルドしましょう。まずは起動するファイルを探します。 zlib\contrib\vstudio\vc11 にある zlibvc.sln を起動します。そうすると最初の一回目は、変換処理を促されるので、言われるがまま変換します。次にソリューションをビルド<span>(</span>Ctrl+Shift+B<span>)</span>してみるとエラーがごっそり。 プロジェクトの設定を変更します。Debug Release の2つの構成の プラットフォーム Win32 と x64 の全部で4つ構成それぞれでzlibソリューションの中の5つプロジェクトプロパティ。全20通り対してに、[リンカー]-[詳細設定]の[安全な例外ハンドラーを含むイメージ] に いいえ (/SAFESEH:NO)を設定します。 [C/C++]-[全般の] 警告をエラーにするがいいえになっていることも確かめます。 inffas8864.c の 引数の指定の仕方を以下のようにします。 <Syntaxhighlight2 lang="cpp"> … void inflate_fast(z_streamp strm, unsigned start) //z_streamp strm; //unsigned start; { … </Syntaxhighlight2> c言語の記述方法になっているので、引数の型を関数名の横のカッコ無いで設定してc++言語向けにする。いらなくなったところをコメント化しています。 zlibvcプロジェクトを展開したところにあるファイルzlibvc.defの中身を以下のように書き換えます。 <Syntaxhighlight2 lang="cpp"> … ;VERSION 1.2.8 VERSION 1.28 { … </Syntaxhighlight2> VERSIONの指定方法が間違えているようです。 これでソリューション全体のビルドができるようになったハズです。 そしたら libpngも入手してzlibを配置したフォルダと同じところにlibpng1637のようなフォルダも配置します。 libpngをビルドするための作業をします。まずは起動するファイルを探します。 lpng1637\projects\vstudio にある vstudio.sln を起動します。そうすると最初の一回目は、変換処理を促されるので、言われるがまま変換します。次にソリューションをビルド<span>(</span>Ctrl+Shift+B<span>)</span>してみるとエラーがごっそり。 プロジェクトの設定を変更します。Debug DebugLibrary Release ReleaseLibrary の4つの構成の プラットフォーム Win32の全部で4つ構成それぞれで、libpngソリューションの中の5つプロジェクトプロパティ。全20通り対してに、[C/C++]-[全般の] 警告をエラーにするがいいえになっていることも確かめます。 これでソリューション全体のビルドができるようになったハズです。 === '''FreeTypeのプロジェクト設定''' === 次にFreeTypeをlibpngありの設定にします。 include\freetype\config\ftoption.hを以下の通りに変更します。 <Syntaxhighlight2 lang="cpp" line=255> /*************************************************************************/ /* */ /* PNG bitmap support. */ /* */ /* FreeType now handles loading color bitmap glyphs in the PNG format. */ /* This requires help from the external libpng library. Uncompressed */ /* color bitmaps do not need any external libraries and will be */ /* supported regardless of this configuration. */ /* */ /* Define this macro if you want to enable this `feature'. */ /* */ /* If you use a build system like cmake or the `configure' script, */ /* options set by those programs have precendence, overwriting the */ /* value here with the configured one. */ /* */ #define FT_CONFIG_OPTION_USE_PNG </Syntaxhighlight2> まずはincludeファイルでlibpngの動作を有効にする宣言がある箇所があるので、そこのコメント化されている部分を外します。 次に、以下のファイルにアクセスできるようにします。 lpng\png.h lpng\pngconf.h lpng\pnglibconf.h zlib\zconf.h zlib\zlib.h lpng\Release Library\libpng.lib lpng\Debug Library\libpng.lib lpng\Release Library\zlib.lib lpng\Debug Library\zlib.lib FreeTypeのプロジェクトの設定にライブラリの絶対パスを設定したり、優先度を低めにして、ヘッダファイルの絶対パスを通したりします。コピーして放り込んだり、いろいろな人のやり方があると思うので、ここは流儀が分かれます。 自分のやり方ですけど。プロジェクトのインクルード設定を変更します。これからlibpngを使う。
FreeTypeをコンパイル
に戻る。
個人用ツール
18.222.109.133
このIPアドレスのトーク
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ