Kouhei Sutou
kou****@clear*****
2014年 8月 31日 (日) 20:01:57 JST
須藤です。 In <54018****@gmail*****> "[groonga-dev,02722] Re: MroongaのWindows向けバイナリのリリースについて" on Sat, 30 Aug 2014 17:21:08 +0900, hiroshi hatake <cosmo****@gmail*****> wrote: >> 予想なんですが、MroongaかGroongaがやっているチェックの中で何 >> かのフラグを変更していて、それがビルドエラーの引き金になって >> いるんではないかと思っています。で、↑のcmakeの出力を見ると >> Mroonga/Groongaが追加でチェックしている項目を見つけることが >> できると思っています。 > > VS2013でMariaDB 10.0.13バンドル版Mroonga 4.0.5を両方の場合で「cmake -G > "Visual Studio 12"」した場合のログを取ってみました。 > > storage/mroongaあり > https://dl.dropboxusercontent.com/u/36753409/VS2013-cmake-config/config-with-mroonga.log > storage/mroongaなし > https://dl.dropboxusercontent.com/u/36753409/VS2013-cmake-config/config-without-mroonga.log ありがとうございます! diffはこうだったんですが、わかりませんでした! --- config-without-mroonga.log 2014-08-31 18:52:24.762156259 +0900 +++ config-with-mroonga.log 2014-08-31 18:52:17.878323680 +0900 @@ -40,6 +40,43 @@ -- Looking for sched_getcpu - not found -- Looking for asprintf -- Looking for asprintf - not found +-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) +-- Looking for errno.h +-- Looking for errno.h - found +-- Looking for netinet/tcp.h +-- Looking for netinet/tcp.h - not found +-- Looking for signal.h +-- Looking for signal.h - found +-- Looking for sys/sysctl.h +-- Looking for sys/sysctl.h - not found +-- Looking for _strnicmp +-- Looking for _strnicmp - found +-- Looking for _strtoui64 +-- Looking for _strtoui64 - found +-- Looking for close +-- Looking for close - found +-- Looking for mkostemp +-- Looking for mkostemp - not found +-- Looking for open +-- Looking for open - found +-- Looking for read +-- Looking for read - found +-- Looking for write +-- Looking for write - found +-- Looking for fpclassify +-- Looking for fpclassify - found +-- Looking for dlopen in dl +-- Looking for dlopen in dl - not found +-- Looking for backtrace in execinfo +-- Looking for backtrace in execinfo - not found +-- Looking for clock_gettime in rt +-- Looking for clock_gettime in rt - not found +-- Looking for winsock2.h +-- Looking for winsock2.h - found +-- Looking for event_init in event +-- Looking for event_init in event - not found +-- Looking for msgpack_version in msgpack +-- Looking for msgpack_version in msgpack - not found -- Configuring OQGraph -- Could NOT find Boost -- Boost not found. OQGraph will not be compiled > 他にも必要な情報はありますでしょうか…! 別のアプローチでもいいですか? a. MroongaなしMariaDBで本当にstorage/connect/tabwmi.cppがビ ルドされているか確認する。 storage/connect/tabwmi.cppの length[0] = max(length[0], len); の次の行に #error Built! というのを入れてビルドし、「Built!」というエラーメッセー ジでビルドが失敗したらMroongaなしのMariaDBでも本当にビル ドしている。 → Mroongaなしのときはなにかしらの方法でmax()を定義してい るはず b. MroongaなしMariaDBでmax()がどこで定義されているかを確認す る。 storage/connect/tabwmi.cppの length[0] = max(length[0], len); の次の行に #define max(a, b) a というのを入れると warning C4005: 'max' : マクロが再定義されました。 という警告がでて、このメッセージの周辺にどこでmax()が定義 されていたかの情報がでるはず → Mroongaなしのときはどこで定義されているmax()を使ってい るかがわかる。それをヒントにどうしてMroongaありのときは max()が定義されていないのかを調べる どうでしょうか!? -- 須藤 功平 <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/