运行OpenCV的build_js文件时出现Error 193问题求助
解决OpenCV.js编译时的Error 193问题
我之前帮不少开发者排查过OpenCV 3.4.1编译JavaScript版本时遇到的Error 193问题,虽然你已经确认emsdk是64位的,但还是有几个容易被忽略的细节可以逐一排查:
先检查Python版本的位数
很多人会忽略这一点:即使emsdk是64位,如果你的Python是32位的,运行build_js.py时就会触发Error 193。你可以打开命令行输入以下命令验证:python -c "import struct; print(struct.calcsize('P') * 8)"如果输出是
32,说明你用的是32位Python,赶紧换成64位的同版本(OpenCV 3.4.1建议搭配Python 3.6-3.8之间的版本,兼容性更好)。清理编译缓存,从头开始编译
之前的编译残留(比如不小心生成的32位临时文件)可能会干扰新的编译流程。你可以:- 进入OpenCV源码目录,找到
build_js文件夹(如果没有就手动创建) - 删除该文件夹下的所有内容
- 重新运行编译命令:
python build_js.py --build_dir build_js,确保从头开始构建。
- 进入OpenCV源码目录,找到
确保emsdk环境变量正确加载
有时候环境变量配置会出问题,导致实际调用的还是旧的32位工具链。可以按以下步骤操作:- 关闭所有已打开的命令行窗口,避免残留的环境变量影响
- 进入emsdk的安装目录,运行
emsdk activate 1.38.40(这个版本和OpenCV 3.4.1兼容性最好,最新版emsdk可能会有适配问题) - 运行
emsdk_env.bat(Windows系统)或者source emsdk_env.sh(Linux/macOS)来加载正确的环境变量 - 再切换到OpenCV源码目录执行编译命令。
强制指定64位编译架构
可以在编译时手动给cmake传递64位架构参数,避免默认选择错误:python build_js.py --build_dir build_js --cmake_options "-DCMAKE_SYSTEM_PROCESSOR=x86_64"排查第三方依赖的位数(如果有自定义依赖)
如果你在编译时添加了第三方依赖(比如ffmpeg),一定要确保这些依赖也是64位版本。如果是默认的无额外依赖编译,这个问题概率很低,但还是可以排查一下。
内容的提问来源于stack exchange,提问作者sankalp chari
相关产品推荐
相关产品推荐

