nnstreamer/homebrew-neural-network

macOS Build Error

Closed this issue · 2 comments

I tried to install nnstreamer on my MacBook Pro, but it fails with compile error about tensorflow.
I am using MacBook with M1 Pro (arm64), but I tried both x86 brew and arm brew. Both of them are failed with similar error message.

How can I fix this?
It seems that brew installed libtensorflow of 2.9.0 version which is latest now.

==> Installing nnsuite/neural-network/nnstreamer dependency: libtensorflow
==> Pouring libtensorflow--2.9.0.monterey.bottle.tar.gz
🍺  /usr/local/Cellar/libtensorflow/2.9.0: 913 files, 913.3MB

Error messages here:

> brew install nnstreamer
<...install many many dependencies...>
==> Installing nnsuite/neural-network/nnstreamer
==> rm -rf build
==> meson build --prefix=/usr/local/Cellar/nnstreamer/1.0.0 --sysconfdir=/usr/local/Cellar/nnstreamer/1.0.0/etc -Denable-tensorflow-lite=false -Denable-pytorch=false -Denable-caffe2=false
==> ninja -C build install
Last 15 lines from /Users/muhwan/Library/Logs/Homebrew/nnstreamer/03.ninja:
TF_CAPI_EXPORT extern size_t TF_StringGetSize(const TF_TString *tstr);
                                                                ^
/private/tmp/nnstreamer-20220531-6012-alme8e/nnstreamer-d1b0cf4625c1efa309d696c9c6100b242b63d3d8/ext/nnstreamer/tensor_filter/tensor_filter_tensorflow_core.cc:424:7: error: use of undeclared identifier 'TF_StringEncode'
      TF_StringEncode (
      ^
3 errors generated.
[49/101] Compiling C object gst/nnstreamer/libnnstreamer.dylib.p/_private_tmp_nnstreamer-20220531-6012-alme8e_nnstreamer-d1b0cf4625c1efa309d696c9c6100b242b63d3d8_gst_nnstreamer_tensor_repo_tensor_reposink.c.o
[50/101] Compiling C object gst/nnstreamer/libnnstreamer.a.p/_private_tmp_nnstreamer-20220531-6012-alme8e_nnstreamer-d1b0cf4625c1efa309d696c9c6100b242b63d3d8_gst_nnstreamer_nnstreamer_conf.c.o
[51/101] Compiling C object gst/nnstreamer/libnnstreamer.dylib.p/_private_tmp_nnstreamer-20220531-6012-alme8e_nnstreamer-d1b0cf4625c1efa309d696c9c6100b242b63d3d8_gst_nnstreamer_tensor_repo_tensor_reposrc.c.o
[52/101] Compiling C object gst/nnstreamer/libnnstreamer.a.p/_private_tmp_nnstreamer-20220531-6012-alme8e_nnstreamer-d1b0cf4625c1efa309d696c9c6100b242b63d3d8_gst_nnstreamer_nnstreamer.c.o
[53/101] Compiling C object gst/nnstreamer/libnnstreamer.a.p/_private_tmp_nnstreamer-20220531-6012-alme8e_nnstreamer-d1b0cf4625c1efa309d696c9c6100b242b63d3d8_gst_nnstreamer_nnstreamer_subplugin.c.o
[54/101] Compiling C object gst/nnstreamer/libnnstreamer.a.p/meson-generated_.._tensor_transform_transform-orc.c.o
[55/101] Compiling C object gst/nnstreamer/libnnstreamer.a.p/_private_tmp_nnstreamer-20220531-6012-alme8e_nnstreamer-d1b0cf4625c1efa309d696c9c6100b242b63d3d8_gst_nnstreamer_tensor_common.c.o
[56/101] Compiling C object gst/nnstreamer/libnnstreamer.dylib.p/_private_tmp_nnstreamer-20220531-6012-alme8e_nnstreamer-d1b0cf4625c1efa309d696c9c6100b242b63d3d8_gst_nnstreamer_tensor_transform_tensor_transform.c.o
ninja: build stopped: subcommand failed.

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
  https://github.com/nnsuite/homebrew-neural-network/issues

@minty99 After bumping up to NNS v2.0.0, I've noticed that a number of sub-plugins do not properly work. This is the reason why the dependencies, which are declared in the formula, are kept as minimalized as possible.

I am working on letting the sub-plugins enable such as GRPC, ProtoBuf, FlexBuf, TF1/2, and TFLite1/2.

nnsuite/neural-network/nnstreamer looks like the old one. In my case, the following commands work as intended. Note that nnsuite has been changed to nnstreamer.

$ brew tap nnstreamer/neural-network
$ brew install nnstreamer

FYI, to the best of my knowledge, NNS currently supports TF v2.3 and v2.7, which means running on v2.9 is not guaranteed yet.

I think macos build is working after #3772. Please report (reopen) if it's not working yet.