殴り書き雑多ですが悪しからず。
SOILを利用しようとすると外部リンクエラーが発生する
書籍のゲームプログラミング in c++を読み進めていくと第5章でTextureクラスを作成する際に画像を扱う必要が出てくるんですけど、ここではSOIL(Simple OpenGL Image Library)(stb_imageの拡張版らしい)が使われてます。Visual Studio 2017環境で書かれているはずなのにSOILの最終更新が2008年と古く、このままでは使い物になりません(でした)。
SOIL作者webページからソースコードをダウンロードし、再度ビルドすることでlibファイルを再構築する必要がありそうです。
誰向けの情報か
当書籍を読んでいると分かるのですが、突然外部ライブラリの導入をさせられることが度々あり、導入方法についてもぐぐれかすなスタンスなので、ここで挫折したりイライラしてる人いるかもしれないと思ったんで、そういった方たちに少しでもヒントになればと思います。)
解決策
1.SOILのダウンロードページにアクセスする。
hereをクリックしてSOIL.zipをダウンロードし適当な位置に解凍する。
例えば自分はC:/Program Files/SOIL/などに解凍した。
2.SOIL/Simple OpenGL Image Library/projects/VC9/まで移動し、SOIL.slnをVisual Studio 2017で起動する。起動すると自動的にx64用に変換してくれるのでOKを押す。
3.VS2017画面上部にあるDebugをReleaseモードに、Win32をx64に切り替える。
4.3のままではソースファイルがないためビルドしてもソースがないとエラーが出る。
ソースはsoil/Simple OpenGL Image Library/srcの中に入っているので、すべてSOIL.slnと同じ階層フォルダにコピペする。
5.VS2017に戻り、ビルドする。(Ctrl+Shift+Bかビルド->ソリューションのビルドを押す)
6.SOI/Simple OpenGL Image Library/projects/VC9/x64/Releaseフォルダ内にSOIL.libが作成されるのでこれを自分が作ってるゲームプロジェクトのライブラリに設定する。
これでリンクエラーを解決することが出来ると思います。
一般的な外部ライブラリの導入方法に関しては知ってる前提で書いてるので割愛しますが、分からない場合は簡単に以下に方針を示しておきます。(書くのが面倒)
1.自分のゲームプロジェクトをVS2017で開く
2.画面上プロジェクト->(プロジェクト名)のプロパティを開く
3.[構成プロパティ]->[VC++ディレクトリ]->[インクルードディレクトリ]に外部ライブラリのヘッダーやソースが入ったフォルダパスを入力する。
4.[構成プロパティ]->[VC++ディレクトリ]->[ライブラリディレクトリ]にSOIL.libが入ったフォルダパスを指定する
5.[構成プロパティ]->[リンカー]->[入力]->[追加の依存ファイル]にsoil.lib(自分でlibファイルの名前を変えてたらそれに合わせて入力してください)
以上です。質問や指摘事項ありましたらコメントまでお願いします。
時間があれば分かる範囲で回答します。