C:\Downloads\soci-3.1.0> mkdir buildと、build ディレクトリを作成します。 今回は、sqlite3, postgresql, odbc をターゲットに構築してみました。sqlite3 や postgresql のライブラリの構築は、ここでは扱いません。 以下のような build.bat を作成しました。
cd build cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ^ -DWITH_SQLITE3=ON ^ -DSQLITE3_INCLUDE_DIR=c:/libs/sqlite3/include ^ -DSQLITE3_LIBRARIES=c:/libs/sqlite3/lib ^ -DSQLITE3_LIBRARY=c:/libs/sqlite3/lib/sqlite3.lib ^ -DSQLITE_INCLUDE_DIR=c:/libs/sqlite3/include ^ -DSQLITE_LIBRARIES=c:/libs/sqlite3/lib ^ -DSQLITE_LIBRARY=c:/libs/sqlite3/lib/sqlite3.lib ^ -DWITH_ODBC=ON ^ -DWITH_POSTGRESQL=ON ^ -DPOSTGRESQL_INCLUDE_DIR=C:/libs/postgres/include ^ -DPOSTGRESQL_LIBRARIES=C:/libs/postgres/lib/libpq.lib ^ -DBOOST_RELEASE_VERSION=1.49.0 ^ -DBOOST_INCLUDE_DIR=C:/downloads/boost-1_49_0 ^ -DBOOST_LIBRARIES=C:/downloads/boost-1_49_0/stage/lib cd ..変な ^ マークは、バッチファイルを複数行連結させる時のおまじないです。linux 系では \ に相当します。
ドキュメントには、SQLITE_INCLUDE_DIR, SQLITE_LIBRARIES を設定しろと書いていますが、間違ってます。
SQLITE3_INCLUDE_DIR が正しく、同様に SQLITE3_LIBRARIES かと思いきや CMakeFiles.txt 中で SQLITE3_LIBRARY から SQLITE3_LIBRARIES が思い切り上書きされています。ですので、SQLITE3_LIBRARY に sqlite3 の lib
postgresql も libpq.lib を指定します。
初期ポストで、ここに示していた修正は間違っていたので消去しました
windows だと、リンクに失敗しますので、soci-3.1.0/backends/soci-postgresql.h を修正します。
... #ifndef SOCI_POSTGRESQL_H_INCLUDED #define SOCI_POSTGRESQL_H_INCLUDED #ifdef _WIN32 # ifdef SOCI_DLL # ifdef SOCI_POSTGRESQL_SOURCE # define SOCI_POSTGRESQL_DECL __declspec(dllexport) # else # define SOCI_POSTGRESQL_DECL __declspec(dllimport) # endif // SOCI_POSTGRESQL_SOURCE # endif // SOCI_DLL // ここの2行を追加します。 #pragma comment( lib, "ws2_32.lib") #pragma comment( lib, "secur32.lib") #endif // _WIN32 // // If SOCI_POSTGRESQL_DECL isn't defined yet define it now ...それでは、準備が整いましたので、soci-3.1.0 のディレクトリに移動して
C:\Downloads\soci-3.1.0> build C:\Downloads\soci-3.1.0> cd build C:\Downloads\soci-3.1.0\build> nmake以上で完了です。 今回、spatialite は使用しませんでした。 インストールは、管理者権限で nmake install です。 2012/05/18 追記:どうも、うまくコンパイルできていないくさい・・・ backends/*/CMakelists.txt の変更が間違ってると思われるので削除。 2012/05/18 追記:修正して追記。 2012/05/18 追記:同じ所で、ひっかかった。http://www.mail-archive.com/soci-users@lists.sourceforge.net/msg00931.html 2012/05/18 追記:うーん・・・やっぱ、ゴリゴリ書くか・・・
0 件のコメント:
コメントを投稿