グラフ描画ライブラリ"PLplot"のインストール
PLplot(http://plplot.sourceforge.net/index.html)は二次元、三次元グラフの描画ライブラリ。
ライセンスがLGPLな為、条件付きながら商用アプリにも使えるかも。
こいつをWindowsにインストールするための覚え書き。対象は何故かVisualC++ 2005。
ただし、C言語用インターフェース限定ながら、C++BuilderでもOKっぽい。
必要なもの
CMake
CMake (http://www.cmake.org/HTML/Index.html)はクロスプラットフォームでGUI付きなmake。感じとしてconfigure+makeっぽい。これはこれで、いじり甲斐がありそう。LibGD
LibGD(http://www.libgd.org/)は、画像ファイル(jpeg, gif, png)の生成ライブラリ。Windows用バイナリ(http://www.boutell.com/gd/http/gdwin32.zip)はMinGWでこしらえているので、同梱の「makemsvcimport.bat」を実行して、VC++でリンクできるようにする。ちなみに、中身はこんな感じ。
@echo Creating bgd.lib lib /machine:i386 /def:bgd.def @echo Done. You can now link to the bgd.lib import library from MSVC.C++Builderならばimplibでいけるはず。
ビルド
src\plctrl.cの1475行に記述されている関数"strcat_delim"に問題があるので、当該部分を修正する。
/*--------------------------------------------------------------------------*\ * void strcat_delim() * * Append path name deliminator if necessary (does not add one if one's * there already, or if dealing with a colon-terminated device name). \*--------------------------------------------------------------------------*/ static void strcat_delim(char *dirspec) { int ldirspec = strlen(dirspec); #if defined (MSDOS) || defined(WIN32) // ←"defined(WIN32)"を追加 if (dirspec[ldirspec-1] != '\\') strcat(dirspec, "\\"); #elif defined (macintosh) if (dirspec[ldirspec-1] != ':') strcat(dirspec, ":"); #else /* unix is the default */ if (dirspec[ldirspec-1] != '/') strcat(dirspec, "/"); #endif }「Visual Studio 2005 コマンド プロンプト」を開き、 アーカイブを展開したフォルダで以下のコマンドを実行。
md buildnmake cd buildnmake set GDLIBDIR=C:\lib\gdwin32 set CMAKE_INCLUDE_PATH=%GDLIBDIR% set CMAKE_LIBRARY_PATH=%GDLIBDIR% cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install .. nmake nmake install※1 GDLIBDIRの値はLibGDを展開したフォルダ。
※2 コンパイル時にdrivers\wingcc.cの567行でコケるので、要修正。
AppendMenu(dev->PopupMenu, MF_STRING, PopupPrint, "Print"); AppendMenu(dev->PopupMenu, MF_STRING, PopupNextPage, "Next Page..."); // ←3点リーダ(0x85)が不正キャラクタ扱いになる AppendMenu(dev->PopupMenu, MF_STRING, PopupQuit, "Quit");installフォルダの下に、bin、include、lib、shareが出来るので、これらを任意のフォルダにコピーする。
配布
installフォルダの下にある"bin"、"include"、"lib"、"share"を配布する。DLLの検索パスは注意すること。
また、環境変数としてPLPLOT_HOMEにインストール先フォルダ、PLPLOT_LIBに、%PLPLOT_HOME%\share\plplot5.8.0\を設定する。