テクニカルノート
Windows 10, Microsoft Visual Studio Community 2017でのglut, glui, lapack,
libpngのインストール (2019も同様)
- Microsoft Visual Studio Community 2017 (+Windows 8.1 SDK)のインストール (MVSC2019の場合も同様)
- Visual Studioのサイトから、Visual Studio 無償ダウンロード(ページの下の方にあります。見つからない場合は"Visual Studio"
"無償" などで検索)をクリックするとインストーラ(exeファイル)がダウンロードされる。ダウンロードが完了したらインストーラを実行する。
- しばらくすると、インストールするコンポーネントを選択する画面が現れる。「ワークロード」タグが開かれているはずなので、「C++によるデスクトップ開発」にチェックを入れる。
(*2019ではこの後、画面右下の「インストール」ボタンを押せばインストールが進み、再起動が要求された後、そのまま完了する。以下の3~5の作業は不要。)
- 再起動しろと言われたらおとなしく従う。
- 画面左下のウインドウズボタンより、Visual Studio Installerを起動。「インストール済み」の下にVisual Studio
Community 2017 (もしくは2019)と表示されるが、その下の「変更」ボタンをクリック。「個別のコンポーネント」タグを選択し、下の方にスクロールして「Windows
8.1 SDK」にチェックを入れる(この操作は2019では不要)。画面右下の「変更」ボタンをクリック。
- インストールが終了したらVisual Studio Installerは終了しておく。
- glut のインストール
- Windows 用の glut である,glut-3.7.6-bin.zip を入手、展開。
- glut.h を C:\Program Files (x86)\Windows Kits\10\Include\10.x.xxxxx.x\um\gl
にコピー。(xxxの部分は環境によります)
- glut32.lib を C:\Program Files (x86)\Windows Kits\10\Lib\10.x.xxxxx.x\um\x86
にコピー。
- glut32.dll を C:\Windows\SysWOW64 にコピー。
- glui のインストール
- glui-2.36.zip を入手、展開 。
- 展開したディレクトリ中の src\msvc フォルダに移動し、glui.dsw をダブルクリックして Visual Studio 2017 で開く。(プロジェクトとソリューションの変更をレビューという画面が現れ、ファイルをアップグレードするよなどと言われるが、言われる通りにする。セキュリティ警告も出るが、気にしない(すべてOKでよい)
- 右の方に現れるソリューションエクスプローラーで、GLUIが選択されているのを確認。
- 上の方の窓で「Debug」と表示されているところがあるが、その横の小さな矢印をクリックし、Releaseを選択しておく。
- 上の「ビルド」タグを選択、「GLUIのビルド」を行う 。すると「includeファイルを開けません」などとエラーが出るかもしれない。パスをきちんと通す必要がある模様。そこで、上の方の「プロジェクト」==>「プロパティ」を開き、構成プロパティの「VC++ディレクトリ」を選択。右側の「インクルードディレクトリ」を選択し編集。空欄のところに、"C:\Program
Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\ucrt"と、"C:\Program
Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\um"を追加する。
- 再度「GLUIのビルド」を行う。今度はパスが通ってコンパイルが進む・・ようだが、「テンプレートの明示的なインスタンス化は名前空間スコープでのみ発生します」などというエラーが大量に現れる。
- どうやらglui.hの中身に問題がある模様。ソリューションエクスプローラーでGLUIをロールアウトするとglui.hが現れるので、これを編集する。glui.hをダブルクリックして「ファイル名が変更されたかあるいは削除された」とエラーが出る場合、その下にあるプロパティの「相対パス」が誤っている可能性がある(..\glui.hなどとなっているとダメ)。..\include\GL\glui.hに書き直し、再度glui.hをダブルクリック。
- glui.hの中身が表示されたら、1716行目あたりに#ifdef _MSC_VER で始まる定義文を探す。1718,1719行目のtemplate
classで始まる2行を両方ともコメントアウトする(templateの前に//を記入)。Ctrl-Sで保存。
- 再び「GLUIのビルド」を行う。正常終了すると、src\msvc\libフォルダにglui32.libが生成される。これをC:\Program
Files (x86)\Windows Kits\10\Lib\10.x.xxxxx.x\um\x86 にコピーする。
- exampleプログラムを走らせたい場合には、ソリューションエクスプローラーより例えばexample1を選択。パス設定をやり直す必要があるので、「プロジェクト」==>「プロパティ」を開き、構成プロパティの「VC++ディレクトリ」、「インクルードディレクトリ」に"C:\Program
Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\ucrt"と、"C:\Program
Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\um"を追加する。さらに、「ライブラリディレクトリ」に"C:\Program
Files(x86)\Windows Kits\10\Lib\ucrt\x86"と、"C:\Program Files(x86)\Windows
Kits\10\Lib\um\x86"を追加。「ビルド」==>「example1のビルド」をクリックし、正常終了するとsrc\msvc\binフォルダにexample1.exeが生成される。
- glui.hをC:\Program Files (x86)\Windows Kits\10\Include\10.x.xxxxx.x\um\gl
にコピー。
Lapackのインストール (Windows Visual Studio 2017) *2019も同様
- http://www.netlib.org/clapack/ よりCLAPACK3-Windows.zipをダウンロード.
- clapack.dswをダブルクリックしてMicrosoft Visual Studioで開く.
- ソリューションエクスプローラーでblasを選択後、ツールバーのDebugをReleaseに変更。
- プロジェクト==>プロパティを開き、「構成プロパティ」の「全般」の「Windows SDK バージョン」を8.1から10.x.xxxxx.xに変更。(*2019では不要)
- ソリューションエクスプローラーでclapackを選択後、プロジェクト==>プロパティを開き、構成プロパティの「VC++ディレクトリ」、「インクルードディレクトリ」に"C:\Program Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\ucrt"を追加。
- ソリューションエクスプローラーでlibF77を選択後、5.の操作を行いパスを追加。
- ソリューションエクスプローラーでlibI77を選択後、5.の操作を行いパスを追加。
- ソリューションエクスプローラーでclapackを選択後、ビルド==>clapackのビルド。
- ソリューションエクスプローラーでlibF77を選択後、ビルド==>libF77のビルド。(*2019では更新不要といわれてすぐ終了する)
- ソリューションエクスプローラーでlibI77を選択後、ビルド==>libI77のビルド。
- CLAPACK\Releaseのclapack.lib, CLAPACK\BLAS\Releaseのblas.lib, CLAPACK\F2CLIBS\ReleaseのlibF77.lib,libI77.lib をC:\Windows\systemにコピー。
libpngのインストール (Windows Visual Studio 2017) *2019も同様
- http://libpng.sourceforge.net/index.htmlからソースをゲット(lpng1636.zip)
- http://zlib.net/からzlibのソースをゲット(zlib1211.zip)
- まずlpng1636.zipを展開.(lpng1636というフォルダができる)
- zlib1211.zipを展開する.zlib1211というフォルダができるが,これをzlibにリネームし,lpng1636が置かれているフォルダにコピーする.(あるフォルダにlpng1636ディレクトリとzlibディレクトリが置かれている状態にする)
- lpng1636\projects\visualc71フォルダに移動し、libpng.slnを開く(ダブルクリック).
- ツールバーで「DLL Release」を選択。ソリューションエクスプローラーでlibpngを選択し、プロジェクト==>プロパティを開き、構成プロパティの「VC++ディレクトリ」、「インクルードディレクトリ」に"C:\Program Files(x86)\Windows Kits\10\Include\10.x.xxxxx.x\ucrt"を追加、「ライブラリディレクトリ」に"C:\Program Files(x86)\Windows Kits\10\Lib\10.x.xxxxx.x\ucrt\x86"を追加。
- ソリューションエクスプローラーでzlibを選択し、 6.と同様のパスを追加。
- ソリューションエクスプローラーでlibpngを選択、「ビルド」より「libpngのビルド」を実行。
- libpng1636フォルダにあるpng.hとpnglibconf.hとpngconf.hをC:\Program Files (x86)\Windows Kits\10\Include\10.x.xxxxx.x\umにコピー。
- libpng1636\projects\visualc71\Win32_DLL_Release内にできるライブラリ(libpng.lib)をC:\Windows\systemにコピー。さらにその下のZLib/zlib.libも同じ場所にコピーする。
- libpng1636\projects\visualc71\Win32_DLL_Release内にできるlibpng16.dllと、さらにその下のZLib\zlib1.dllを C:\WINDOWS\SysWOW64にコピー。
※プログラムソース内でのライブラリ指定は#pragma comment(lib, "libpng.lib")となる。
その他のテクニカルノートはQiitaのページに掲載しています。