docker - 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
解决方案
您使用的是哪个 docker 映像?您是如何在 docker 映像中安装 emscripten(emsdk?)的。
有一个半官方的 docker 镜像,您可以通过docker pull emscripten/emsdk
.
但是,您应该可以直接在 MacOS 上安装 emsdk,而根本不需要使用 docker。这是安装 emscripten 的推荐方式。如果您在直接安装 emsdk 时遇到问题,请在https://github.com/emscripten-core/emsdk提交错误
推荐阅读
- javascript - Chrome 扩展上的 OAuth 2.0 不使用隐式流
- python - 有条件地向 SQLAlchemy 查询添加多个过滤器,而无需重复代码
- wordpress - 你可以在 WordPress 循环中有 2 个相邻的“if”语句吗?什么是最佳实践?
- python - 将十六进制值存储为整数
- azure - 对多租户应用程序使用授权码流不起作用
- swift - 图类的 Swift 泛型
- imagemagick - 使用 imagemagick++ 从 PNG 文件中读取元数据
- flutter - SharedPreferences 是让用户在 Flutter 中保持登录的安全方式吗?
- android - 在 Android 设备屏幕解锁之前运行服务
- node.js - router.param 未触发 passport.js 在 app.use 中初始化