cpp-netlibのstaticライブラリをビルド(cpp-netlib編)

前回『cpp-netlibのstaticライブラリをビルド(OpenSSL編)

・【Windows】cpp-netlibのVS用プロジェクトを作成>ビルド
正直申し上げて、ここから情報少なくてあやしいです…。(手探り感)
もっといい方法とか情報があれば教えてください!
なお、当方の環境はWindowsです。…Linuxならもっと楽なのかなーと。

・~流れ~
1,cpp-netlib(0.9.4)ダウンロード。
2,解凍(Cドライブ直下)。VSのコマンドプロンプトから解凍先へ移動。
3,cmake。

前回と同じくVSのコマンドプロンプトから。

cd C:\cpp-netlib
cmake -DCMAKE_BUILD_TYPE=Debug

BoostとOpenSSLのパスが正しく通っていないと失敗する。
※エラーメッセージを見て順番に問題を解決していく。
=>システム環境変数にBoostとOpenSSLのパスを追加する、等。

無事完了したら解凍先に『ALL_BUILD.vcxproj』が出来ている。(ソリューション及びプロジェクトファイル)
で、vcxprojファイルを開く…前にちょっと『CMakeCache.txt』を見ます。

『CMakeCache.txt』
BoostのパスがDebug,Release共に正しいか確認。
例えば『Boost filesystem library (debug)』と『Boost filesystem library (Release)』は両方正しく設定されているか?
※~NOTFOUNDとかになっている箇所は要チェック。
さらに、コマンドラインオプションでランタイムライブラリが MD,MDd に指定されていたら MTd,MT に置き換える。
@書き換えたら cmake をやり直す。

『ALL_BUILD.vcxproj』を開く。
ソリューションエクスプローラーにずらっと並んでいるが、とりあえずビルドするのは以下だけでいい。
・cppnetlib-client-connections
・cppnetlib-server-parsers
・cppnetlib-uri
※あと、各ソリューションでランライムライブラリが Debug,Releaseで それぞれ MTd,MTになっているか確認。
=> 忘れると『エラー 22 error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。』みたいなエラーが出る。
=> というかこのエラーが出たら、自分の場合たいていランタイムライブラリの指定が使用するライブラリと現在のプロジェクトで違ってる場合。

ビルドしたら libs\network\src\Debug or Release に出力される
出力されたライブラリは以下。

cppnetlib-client-connections.lib
cppnetlib-server-parsers.lib
cppnetlib-uri.lib

これでようやく目的のcpp-netlibのstaticライブラリが手に入りました!
…ちょっと使うくらいなら素直にcpp-netlibのヘッダーをそのまま使ったほうがいいかもですね。手間ですし。

参考サイト:
http://cpp-netlib.org/0.9.4/getting_started.html

カテゴリー: C++, Windows, 未分類 パーマリンク

コメントを残す

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