Kouhei Sutou
kou****@clear*****
2014年 8月 16日 (土) 19:01:17 JST
須藤です。 In <53EF2****@gmail*****> "[groonga-dev,02658] MariaDB 10.0.13バンドル版MroongaをVS2013でビルドすると失敗します" on Sat, 16 Aug 2014 18:13:50 +0900, hiroshi hatake <cosmo****@gmail*****> wrote: > MariaDB 10.0.13バンドル版Mroonga 4.04 > http://packages.groonga.org/nightly/mariadb-10.0.13-with-mroonga-4.04-for-windows.2014.08.16.zip > をVisual Studio 2013 Express for Desktopにてビルドするとビルドに失敗します。 > Visual Studio 2010 Professionalでは問題なくビルドが完了します。 ... > Visual Studio 2013 zip-32: ... > https://dl.dropboxusercontent.com/u/36753409/with-mariadb-10.0.13/config-mroonga-4.04-with-mariadb-10.0.13-vc2013-zip-32.log これを見る感じだと C:\jw\workspace\dmbvc2013\powershell\work\source\storage\connect\tabwmi.cpp(203): error C3861: 'max': 識別子が見つかりませんでした [C:\jw\workspace\dmbvc2013\powershell\work\build-vc2013-zip-32\storage\connect\connect.vcxproj] が原因ですよね。 connectというストレージエンジンでビルドエラーが発生しているっ てことですよね。 MSDNのmaxの説明 http://msdn.microsoft.com/en-us/library/a3xbc7ya.aspx を読むと、<algorithm>をincludeするとstd::maxが定義されるよう にみえます。 > Requirements > Header: <algorithm> > Namespace: std ということで、 source\storage\connect\tabwmi.cpp に #include <algorithm> を追加して、203行目の length[0] = max(length[0], len); を length[0] = (std::max)(length[0], len); にしてみるのはどうでしょうか!? (std::maxを括弧で括っているのはmaxがマクロでも展開されない ようにするため。) これでビルドできるようになるとすると、これはconnectストレー ジエンジンの問題なので、MariaDBに報告するのがよいのかしら。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: http://www.clear-code.com/services/code-reader/