首页 > 解决方案 > shared:ERROR: BINARYEN_ROOT 在 /root/.emscripten 中设置为空值

问题描述

我正在尝试使用以下命令运行 docker 映像:

docker run -v $PWD/build:/app/build --rm tflite-find-arena-size

但是这个错误弹出给我。我正在使用 MacOS。我试过 brew install 但这没有帮助。我还打开了 ~/.emscripten 文件并检查了 BINARYEN_ROOT 是否为空。请帮忙。

shared:ERROR: BINARYEN_ROOT is set to empty value in /root/.emscripten
Makefile.emcc:31: recipe for target 'build' failed
make: *** [build] Error 1

这是我正在使用的生成文件:

NAME = find-arena-size

CC = emcc
CXX = em++
CFLAGS ?= -Wall

MACROS += -DTF_LITE_DISABLE_X86_NEON
CXXFLAGS += -std=c++11
EMCCFLAGS += -s WASM=0
EMCCFLAGS += --bind
CFLAGS += -I.
CFLAGS += -Isource
CFLAGS += -Iedge-impulse-sdk/
CFLAGS += -Iedge-impulse-sdk/tensorflow
CFLAGS += -Iedge-impulse-sdk/third_party
CFLAGS += -Iedge-impulse-sdk/third_party/flatbuffers
CFLAGS += -Iedge-impulse-sdk/third_party/flatbuffers/include
CFLAGS += -Iedge-impulse-sdk/third_party/flatbuffers/include/flatbuffers
CFLAGS += -Iedge-impulse-sdk/third_party/gemmlowp/
CFLAGS += -Iedge-impulse-sdk/third_party/gemmlowp/fixedpoint
CFLAGS += -Iedge-impulse-sdk/third_party/gemmlowp/internal
CFLAGS += -Iedge-impulse-sdk/third_party/ruy
CFLAGS += -Imodel-parameters
CFLAGS += -Iedge-impulse-sdk/porting

all: build

.PHONY: build clean

build:
    echo "Mazenm"
    mkdir -p build/emcc
    $(CC) -c $(MACROS) $(CFLAGS) $(LFLAGS) edge-impulse-sdk/tensorflow/lite/c/common.c -o build/emcc/common.o
    $(CXX) $(MACROS) $(CXXFLAGS) $(CFLAGS) $(LFLAGS) $(EMCCFLAGS) emcc/emcc_binding.cpp edge-impulse-sdk/tensorflow/lite/kernels/*.cc edge-impulse-sdk/tensorflow/lite/kernels/internal/*.cc edge-impulse-sdk/tensorflow/lite/micro/kernels/*.cc edge-impulse-sdk/tensorflow/lite/micro/*.cc edge-impulse-sdk/tensorflow/lite/micro/memory_planner/*.cc edge-impulse-sdk/tensorflow/lite/core/api/*.cc ./edge-impulse-sdk/dsp/memory.cpp emcc/porting/*.c* build/emcc/common.o -o build/emcc/$(NAME).js
    rm build/emcc/*.o

clean:
    rm -r build/emcc

标签: dockermakefilewebassemblyemscripten

解决方案


您使用的是哪个 docker 映像?您是如何在 docker 映像中安装 emscripten(emsdk?)的。

有一个半官方的 docker 镜像,您可以通过docker pull emscripten/emsdk.

但是,您应该可以直接在 MacOS 上安装 emsdk,而根本不需要使用 docker。这是安装 emscripten 的推荐方式。如果您在直接安装 emsdk 时遇到问题,请在https://github.com/emscripten-core/emsdk提交错误


推荐阅读