githubに公開されている mosquitto のソースファイルを、Visual Studio でコンパイルします。
前提
- 今回は Visual Studio 2010 を使用する(たぶん2017とかでも大丈夫)
- Visual Studio の C++ コンパイラがインストールされていることが前提
- CMake を使用して Visual Studio のソリューションファイルを生成する
CMake を使用してソリューションファイルを生成
ここでは、CMake のインストール方法については言及しません。
mosquitto のソースファイルの用意
mosquitto のリポジトリを github からクローンします。
CMake のビルド環境を用意
必要ファイルのダウンロード
Readmeに書いてある通り、以下をそれぞれ用意する必要があります。
-
OpenSSL
- Link: http://slproweb.com/products/Win32OpenSSL.html
- Install “Win32 OpenSSL
“ - Required DLLs: libeay32.dll ssleay32.dll
-
pthreads
- Link: ftp://sourceware.org/pub/pthreads-win32
- Install “pthreads-w32-
-release.zip - Required DLLs: pthreadVC2.dll
環境変数の設定
ここで、ビルドを通すために、以下の通り環境変数を設定する必要があります。
- OpenSSL
OPENSSL_ROOT_DIR
という環境変数名で、OpenSSLの の展開フォルダを設定(例:c:\temp\OpenSSL-Win32\
)
CMake のビルドを実行
CMake を起動し、以下を指定し、 Configure ボタンを押す。
Where is the source code:
に、 mosquitto のCMakeList.txt
の存在するパスWhere to build the binaries:
に、ソリューションを出力するフォルダパス
コンパイラに何を使うか聞かれるので、今回は Visual Studio 2010 を選択しました。
Finish ボタンを押すと、自動でコンパイルが走ります。
が、たぶん、 c-ares library not found
とか言って怒られるので、画面上の WITH_SRV
のチェックボックスを外し、再度 Generate すします。
正常に終了したら、CMake のコンソール上に Generating done
と表示されます。
すると、指定したフォルダに、 Visual Studio のソリューションファイルが出力されています。
参考
Visual Studio で mosquitto をビルドする
生成されたソリューションファイル(mosquitto.sln
)を起動します。
そのままビルドしてもエラーになるので、以下のようにライブラリの設定をします。
OpenSSL の環境変数
system の Path
環境変数に、OpenSSLの の展開フォルダ\bin を設定します。(例: c:\temp\OpenSSL-Win32\bin\
)
pthreads の設定
pthreads を展開したフォルダから、以下のものをコピーしていきます。
ヘッダファイル
- pthread.h
- sched.h
- semaphore.h
上記ファイルを、C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include
へコピー
lib ファイル
- pthreadVC2.lib
- pthreadVCE2.lib
- pthreadVSE2.lib
上記ファイルを、 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib
へコピー
dll ファイル
- pthreadGC2.dll
- pthreadGCE2.dll
- pthreadVC2.dll
- pthreadVCE2.dll
*pthreadVSE2.dll
上記ファイルを、 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
へコピー
参考
全ては時の中に… : 【VC++】スレッド(pThread)を利用する環境を整える
ビルド実行
上記でたぶん、ビルドできるはずです。
とりあえず mosquitto_sub をコンパイルしてみましたが、警告が出まくりますが、なんとか mosquitto_sub.exe が出力されました・・・
コメント