sfml_pragma.hの解説
前回の記事より、sfml_pragma.hの解説。
基本的には#pragmaでcompilerやlinkerに指示を渡しているだけのものなのだが、
これをしないとlinkの段階で自分で対象となるlibをしないといけなくなる。
これを毎回やるのは面倒なので、Visual Studioを使う人は前回のsfml_pragma.hみたいな
便利ファイルを書いてしまうのが良い。
さらに、
#pragma comment( lib, "hoge.lib")
のpragmaはVisual StudioのC++compiler向けの物なので、gccなどでは意味の無い命令として解釈される。
具体的には、sfmlではdebug/Releaseとstatic/dynamicとでlibの指定が変わる。
そこで、sfml_pragma.hでは、まず_MSC_VERが定義されているか?
でVisual Studioのcompilerかどうかを区別し、さらにその後_DEBUGで
debug用かrelease用かで分岐、最後にSFML_STATICでstaticかdynamicかで
最終的にどのlibとlinkさせればいいのか?を命令する。
ここで重要なのは、前回の様にコードの始めに
#define SFML_STATIC
などが無い場合には、
出来上がった.exeには必要なライブラリーが足りていないので、
.exeと同じフォルダかWindows システム フォルダまたはWindows フォルダに
SFMLのbinフォルダ以下にある.dllがないと動かせない点だろう。
割とopen source系のものでも、この手のメンドイ作業が多いので、
その手のライブラリーを導入するときはVisual Studio向けにだけでも
sfml_pragma.hみたいな物を導入しておくと色々と楽ができるので、割とお勧め。
(有名所のDXlibさんみたいにWindowsのみ対象で、DXlib.hの中に
この手のセッティングを書いてある事もあるけどね。)