無料ブログはココログ

« 同じSDKで新しいSDKを入れても古いSDKが適応される場合の対処方法 | トップページ | Office Home & Business 2016 を個別インストールする »

2017年3月11日 (土)

MySQL Connector/C++ を Visual Studio でビルドする

備忘録です。このメモでは目的の lib と DLL はできますが、ライブラリ以外のプロジェクトでエラーがでます。

MySQL のサイトにある MySQL Connector/C++ の lib と dll ファイルでは相変わらず落ちてしまいます。そこで MySQL Connector/C++ のソースコードをダウンロードしてきて自分でビルドしたものを使用すれば落ちなくなります。

まず CMake が必要になるのでインストールします。環境変数のパスは設定しなくても大丈夫です。ここでは例として CMake のインストール先を下記のようにしました。

C:\Program Files\Tools\CMake

MySQL Connector/C++ のソースコードをダウンロードして展開します。下記のフォルダに展開したものとします。

D:\SDK\mysql-connector\mysql-connector-c++-1.1.8

MySQL 本体も必要です。zip でダウンロードしたものを下記のフォルダに展開したものとします。

D:\SDK\mysql-connector\mysql-5.7.17-winx64

Boost ライブラリも使用します。

D:\SDK\boost_1_61_0

MySQL Connector/C++ のフォルダを開いて CMakeLists.txt をテキストエディタで開きます。

そのまま CMake を走らせてしまうと、timespec 構造体が再定義エラーとなってしまうので定義済みとして DHAVE_STRUCT_TIMESPEC フラグをセットします。Windows 系限定の問題だそうで、

適当なところに

IF(WIN32)
    ADD_DEFINITIONS(-DHAVE_STRUCT_TIMESPEC)
ENDIF(WIN32)

と書いておけば大丈夫のようです。Windows 限定なら IF(WIN32)、ENDIF(WIN32) もいりません。

CMake のコマンドは以下の通りです。画面の都合上改行していますが、コマンドなので一行で書いてください。

"C:\Program Files\Tools\CMake\bin\cmake"
-G "Visual Studio 14 2015 Win64"
-DBOOST_ROOT:STRING="D:/SDK/boost_1_61_0"
-DMYSQL_INCLUDE_DIR="D:\SDK\mysql-connector\mysql-5.7.17-winx64\include"
-DMYSQL_LIB_DIR:STRING="D:\SDK\mysql-connector\mysql-5.7.17-winx64\lib"

CMake を動かすと Visual Studio のソリューションファイルが出来上がります。これをビルドすると複数のプロジェクトでエラーは出ますが、目的のライブラリのプロジェクトはビルドが通り、この例では下記のフォルダに lib と DLL ファイルが出来上がります。

D:\SDK\mysql-connector\mysql-connector-c++-1.1.8\driver\Debug

上記は Visual Studio 2015 の例ですが、ヘルプで Visual Studio のバージョンの書き方が確認できます。

"C:\Program Files\Tools\CMake\bin\cmake" --help

« 同じSDKで新しいSDKを入れても古いSDKが適応される場合の対処方法 | トップページ | Office Home & Business 2016 を個別インストールする »

プログラミング」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 同じSDKで新しいSDKを入れても古いSDKが適応される場合の対処方法 | トップページ | Office Home & Business 2016 を個別インストールする »