Procket コンパイルできねぇ 俺 困憊る
一通り、広く浅く、ネットワーク周りの知識を漁ったので、UDPを使った、デスクトップチャットでも作ろうかと考える。ここ最近、本ばかり読んで頭でっかち、いざ手を動かそうとすると、それまで出来ていた事が、すっぽり抜けて、なかなか前に進めない。とは言え、まずは、開発環境を整える事とした。
サーバ側は、勿論Erlangでやってみるぞ、コノヤローと一人いきんで、rebar3をアップデート、さらに、Erlangの21.1を入れておく。久々のkerlだが、勿論、覚えているわけが無く、昔のログを見ながら何とか成功。備忘録最高。
さて、取り敢えず、プロジェクトが無いと始まらないので、適当な名前でプロジェクトを作成。ここまでは、何とかなった。
問題は、ここから。rebar.configの中を以下のように編集。
{deps, [ {jsone, {git, "https://github.com/sile/jsone.git", {tag, "master"}}}, {procket, "0.9.3"} ]}.
$ rebar3 shell ===> Verifying dependencies... ===> Compiling procket /Applications/Xcode.app/Contents/Developer/usr/bin/make -f /Users/<user_name>/<project_name>/_build/default/lib/procket/c_src/Makefile.ancillary make[1]: Nothing to be done for `all'. cc -m64 -g -Wall -o /Users/<user_name>/<project_name>/_build/default/lib/procket/priv/procket -L/Users/<user_name>/<project_name>/_build/default/lib/procket/c_src procket_cmd.c -lancillary cc /Users/<user_name>/<project_name>/_build/default/lib/procket/c_src/procket.o -L/usr/local/opt/openssl/lib -shared -L/Users/<user_name>/<project_name>/_build/default/lib/procket/c_src -lancillary -L /Users/<user_name>/kerl/installs/21.1/lib/erl_interface-3.10.4/lib -lerl_interface -lei -o /Users/<user_name>/<project_name>/_build/default/lib/procket/c_src/../priv/procket.so Undefined symbols for architecture x86_64: "_enif_alloc_binary", referenced from: _nif_accept in procket.o _nif_read in procket.o _nif_ioctl in procket.o 〜 略 〜 ... "_enif_release_binary", referenced from: _nif_read in procket.o _nif_recvmsg in procket.o _nif_recvfrom in procket.o "_enif_release_resource", referenced from: _nif_alloc in procket.o "_erl_errno_id", referenced from: _nif_fdrecv in procket.o _nif_close in procket.o _nif_accept in procket.o _nif_bind in procket.o _nif_connect in procket.o _nif_getsockname in procket.o _nif_getsockopt in procket.o ... ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [/Users/<user_name>/<project_name>/_build/default/lib/procket/c_src/../priv/procket.so] Error 1 ===> Hook for compile failed!
ちょっと、何コレ_| ̄|○
Google先生も、何も答えてくれない。何故、どうして、こうなる。
怪しいのは、XCodeのmake当たりか?最近XCodeのバージョン上がったし、疑わざるを得ない。
誰かぁ!ご存じの方いたら、優しく教えて下さい。
macOS: Mojave 10.14
XCode 10.1
rebar3 3.7.0-rc2+build.4175.ref83d01b52 on Erlang/OTP 21 Erts 10.1
erlang 21.1
ちなみに、jsoneは、「入るかな?」のお試しです。此方は、問題なく入るのに。
英語が分かれば、直でissue出したいけど、無理っす。