Kouhei Sutou
kou****@clear*****
2014年 8月 16日 (土) 19:53:13 JST
須藤です。 In <53EF3****@gmail*****> "[groonga-dev,02660] Re: MariaDB 10.0.13バンドル版MroongaをVS2013でビルドすると失敗します" on Sat, 16 Aug 2014 19:37:28 +0900, hiroshi hatake <cosmo****@gmail*****> wrote: > source\storage\connect\tabwmi.cpp > > を以下のように変更してビルドしてみました。 ... > > すると今度は違う箇所でのビルドエラーでやはりVS2013ではビルドが通りません。。 おぉ、connectは通るようになったんですね。 > 以下そのビルドエラーについてです。 > > MariaDB-with-Mroonga VS2013 build.txt: > https://dl.dropboxusercontent.com/u/36753409/with-mariadb-10.0.13/build-fix-mroonga-4.04-with-mariadb-10.0.13-vc2013-zip-32.log あれ、これはファイルの先頭にBOMが入っていると大丈夫になるや つですねぇ。Visual C++はデフォルトでそのシステムのロケールか らソースのファイルのエンコーディングを仮定してパースするんで すけど、日本語WindowsだとCP932だと思ってビルドするんですよ。 なので、ASCII以外の文字列が入っているとこんなエラーになりま す。 で、これは、ファイルの先頭にUTF-8のBOMを入れておくとロケール に関係なくUTF-8としてソースをパースしてくれてビルドできるよ うになるんです。(本来、UTF-8にはBOMは必要ないんですけどね。) ということで、Mroongaバンドル版のMariaDBはsql\sql_locale.ccに https://github.com/mroonga/mroonga/blob/master/packages/source/patches/mariadb-10.0.3-windows-build.diff っていうパッチがあたっていてBOMを追加しています。 なので、このエラーはでないと思うんですよねぇ。 なんでだろう。 > 念の為、MySQL 5.6.20 や MariaDB 10.0.13でも同じようなエラーが出ていない > かを見るため、 > 追ってみました。 ... > MySQL 5.6.20 VS2013 build.txt: > https://dl.dropboxusercontent.com/u/36753409/with-mariadb-10.0.13/build-mysql-5.6.20-zip32.log > MariDB 10.0.13 VS2013 build.txt: > https://dl.dropboxusercontent.com/u/36753409/with-mariadb-10.0.13/build-mroonga-4.04-with-mariadb-10.0.13-vc2010-zip-32.log > > 上記の修正を加えたMariaDB-with-Mroonga,MySQL,MariaDBで\sql\sql_locale.cc > の69行 目: > > 67: /***** LOCALE BEGIN ar_AE: Arabic - United Arab Emirates *****/ > 68: static const char *my_locale_month_names_ar_AE[13] = > 69: > {"يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر", > NullS }; > > でエラーになってしまっています。。。 前述の理由から、素のMySQLとMariaDBでこのビルドエラーになるの はそうだろうなぁとは思うんですけど、Mroongaバンドル版の 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/