スポンサーリンク

freeglutをCMakeでコンパイルする

freeglut使おうと思ったがコンパイルではまったのでメモ。

というか、デバッグ版をコンパイルしないなら何も詰まることはない。強いていうならVisual Studioが本文中C:\dev\直下に作業ディレクトリを作りまくることだ。

2017/08/27時点で:

・CMake-3.9.1-win64-x64
・Visual Studio 2017
・freeglut 3.0.0

 

なお、特にこだわりがないなら下記DLページのPrepackaged Releasesの[Martin Payne's Windows binaries(MSVC and MinGW)]からダウンロードすればいいと思う。libもdllも32bit/64bit両方はいっているので何の問題もない。

 

1. まずDLページ[http://freeglut.sourceforge.net/index.php#download]へ行って、Stable Releaseの一番上 Freeglut 3.0.0 をダウンロードする

 

2. C:/dev/ にtar.gzを展開。ビルドディレクトリとインストールディレクトリを作る。おおむねこうなる:

C:\DEV
├─freeglut-3.0.0
│ ├─android
│ ├─progs
│ └─src
├─install_x64
├─install_x86
├─sln_x64
└─sln_x86

 

3 CMake-guiを起動。

3.1 ディレクトリ設定
Where is the source code: → C:/dev/freeglut-3.0.0
Where to build the binaries: → C:/dev/sln_x86

 

3.2 コンパイラ設定
Configure →
Specify the generator for this project: → Visual Studio 15 2017
下のオプションは、Use default native compilersで、Finish

 

3.3 設定変更
Configureが終わったら、Advancedだけチェックして、
3.3.1 CMAKE_INSTALL_PREFIX → C:/dev/install_x86

 

3.4 再度Configure

3.5 Generate

3.6 Open Project

 

4 Visual Studioが起動するので、
4.1 Debugでfreeglut_staticを右クリックし、プロパティ
4.2 構成プロパティ → C/C++ → コマンドライン と進み、以下を追加:
/Fd"freeglut_static.dir\Debug\freeglut_staticd.pdb"

4.3 ALL_BUILDを右クリックし、ビルド
4.4 INSTALLを右クリックし、ビルド

 

解説:
4.2を行わないと、4.4の時に、
--------------------------------------------
コマンド "setlocal
cmake.exe -DBUILD_TYPE=Debug -P cmake_install.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
:VCEnd" はコード 1 で終了しました。

プロジェクト "INSTALL.vcxproj" のビルドが終了しました -- 失敗。
--------------------------------------------

 

と怒られる。少し上を見ると、

27>-- Install configuration: "Debug"
27>-- Installing: C:/dev/install_x86/lib/freeglutd.lib
27>-- Installing: C:/dev/install_x86/bin/freeglutd.dll
27>-- Installing: C:/dev/install_x86/bin/freeglutd.pdb
27>-- Installing: C:/dev/install_x86/lib/freeglut_staticd.lib
27>CMake Error at cmake_install.cmake:74 (file):
27> file INSTALL cannot find "C:/dev/sln_x86/lib/Debug/freeglut_staticd.pdb".

 

と、なんかpdbがないと言われているので作るようにしてやっているのだが、そもそもpdbをはき出すこと自体があれなので、

CMakeの時点で、
3.3.2 INSTALL_PDB → チェックを外す

をしてConfigureすれば、この問題に遭遇しない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: