mixiユーザー(id:7593622)

2020年01月23日21:22

44 view

Mac mini(Catalina)にJubatusをインストール jubatus-installer でやってみよう 実行!(その6)jubatus-mpioでエラーの対処

ようわからんが、Sierra(10.12)以降(もっと前の maverics(10.9) から?)は「tr1」フォルダが無くなりました、という事らしい。
じゃあ、どうすんのよ、というのが具体的にはよくわからない。
「functional.h」を覗いてみると、色々ifdef/ifndefの結果、「#include <tr1/functional> 」となっている。そんでもって、その分岐に入らなければ、「#include <functional> 」する事になっているので、強引にここに来るように「functional.h」を「install.sh」内でまた sed を使って書き換えちゃえば、行くんじゃないかと考えてみたり。
やってないけど。

もう一つの手は、Sierra もしくは High Sierra で、Homebrew でインストールできているので、Homebrew の jubatus-mpio.rb の真似すりゃいいんじゃないかと。

で、見てみると、
if MacOS.version >= :mavericks
ENV['CXXFLAGS'] = '-std=c++11 -DMP_FUNCTIONAL_STANDARD -DMP_MEMORY_STANDARD -DMP_UNORDERED_MAP_STANDARD'
end
とある。

なので、「install.sh」の
./configure CXXFLAGS=-std=gnu++98 --prefix=${PREFIX} && make clean && make && make install
の「-std=gnu++98」を書き換えてみよう。
「install.sh」のこの部分は「jubatus-msgpack-rpc」のインストールでも使用する共通の部分だけれど、きっと「msgpack」もこっちがいいに違いない。

という事で、該当行を
./configure CXXFLAGS='-std=c++11 -DMP_FUNCTIONAL_STANDARD -DMP_MEMORY_STANDARD -DMP_UNORDERED_MAP_STANDARD' --prefix=${PREFIX} && make clean && make && make install
と書き換えて、見事通過。
ただ、ここまでに実行されるその他のライブラリのログを眺めていると、「-std=gnu++98」と出ているもの多数。本当は
「-std=gnu++98 -DMP_FUNCTIONAL_STANDARD -DMP_MEMORY_STANDARD -DMP_UNORDERED_MAP_STANDARD」
と書いた方がいいのかな?まあ、でも通ったので良しとしよう。

***

で、次は、「jubatus_core」でエラー。8箇所全部同様なエラー。
最初の一つ:
「../jubatus/util/lang/function_test.cpp:89:17: error: use of overloaded operator '==' is ambiguous (with operand types 'function<int (const char *)>' and 'int')
EXPECT_TRUE(f == 0);」

8個とも「error: use of overloaded operator '==' is ambiguous (with operand types」部分は全部一緒(「==」部分は異なるけど)


で、最後は
../jubatus/util/lang/function_test.cpp:98:17: note: built-in candidate operator!=(unsigned __int128, unsigned __int128)
1 warning and 8 errors generated.

../jubatus/util/lang/ref_test.cpp:79:5: warning: explicitly assigning value of variable of type 'reference_wrapper<int>' to itself [-Wself-assign-overloaded]
r = r;
~ ^ ~
../jubatus/util/lang/ref_test.cpp:87:6: warning: explicitly assigning value of variable of type 'reference_wrapper<int>' to itself [-Wself-assign-overloaded]
cr = cr;
~~ ^ ~~
2 warnings generated.

Waf: Leaving directory `/Users/tetsu_r/Downloads/jubatus-installer-master/download/jubatus_core-1.1.1/build'
Build failed
-> task in 'function_test' failed with exit status 1 (run with -v to display more information)
ERROR
0 0

コメント

mixiユーザー

ログインしてコメントを確認・投稿する

<2020年01月>
   1234
567891011
12131415161718
19202122232425
262728293031