问答 IOS-STF 依赖安装完成后,检查到 zmq 模块识别异常 Expected in: flat namespace

能吃就多吃点 · 2021年06月28日 · 最后由 能吃就多吃点 回复于 2021年07月01日 · 3794 次阅读

问题:

尝试搭建基于 STF 的 iOS 远程云真机平台,在 stf 目录下运行 cnpm install 安装依赖后,运行 stf doctor 报错:

(base) ly@mm stf % stf doctor
2021-06-28T06:27:50.221Z INF/cli:doctor 45088 [] OS Arch: x64
2021-06-28T06:27:50.224Z INF/cli:doctor 45088 [
] OS Platform: darwin
2021-06-28T06:27:50.224Z INF/cli:doctor 45088 [] OS Platform: 20.2.0
2021-06-28T06:27:50.224Z INF/cli:doctor 45088 [
] Using Node 8.9.1

dyld: lazy symbol binding failed: Symbol not found: _zmq_version
Referenced from: /Users/ly/de/ti/stf/node_modules/_zmq@2.15.3@zmq/build/Release/zmq.node
Expected in: flat namespace

STF 平台搭建参考:

https://testerhome.com/topics/27894
https://testerhome.com/topics/19548

系统配置:

  • Mac (M1,2020) 11.1 BigSur
  • NodeJs 8.9.1
  • npm 5.5.1
  • Xcode 12.4 (命令行执行工具已安装)

环境检查:

  • 前置依赖 zeromq 模块已安装
  • zmq 模块 /stf/node_modules 目录下有 _zmq@2.15.3@zmq 文件

尝试:

  1. cnpm install zmq --unsafe-perm 显示 zmq 已安装
  2. 配置.bash_profile export PKG_CONFIG_PATH=/opt/homebrew/Cellar/zeromq/4.3.4/lib/pkgconfig/ 提示找不到 zmq 模块
  3. 查询 expected in : flat namespace 异常 发现了一个帖子,讲了该异常可能和 MacOS 的编译有关(https://blog.csdn.net/prog_6103/article/details/112970011)但我并不知道如何下手。

我是第一次接触 MacOS 系统和 nodejs,对这方面不太熟悉,请问各位大佬是否有什么解决思路

共收到 2 条回复 时间 点赞

换了一台 Mac ,可正常安装依赖


不知道是 M1 芯片的问题还是 11.1 bigsur 的问题

能吃就多吃点 关闭了讨论 06月29日 16:32
能吃就多吃点 重新开启了讨论 07月01日 13:37

@mrx102 大佬提供一个 MAC M1 芯片的解决方案:
m1 需要安装 x86 版的 homebrew,直接命令安装的是 arm 版的 homebrew。安装 homebrew 前执行一个 arch -x86_64 $SHELL,再执行安装 homebrew 的命令。 之后都使用 arch -x86_64 /usr/local/bin/brew install

能吃就多吃点 关闭了讨论 07月01日 13:39
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册