Centos 7 安装 webassembly 开发环境 emsdk

本文详细记录了在Centos7环境下为WebAssembly开发配置非root用户环境的过程,包括gcc、cmake和emsdk等关键工具的安装步骤。

本文主要依据 https://webassembly.org/getting-started/developers-guide/

由于没有找到在Centos 7 的详细安装说明,特在此记录。

由于本人的开发环境是Centos 7,并且安装了多种开发工具,对库的依赖各有不同,所以采用了非root用户的安装。

安装 gcc 

centos7 自带的版本比较低,需要另行安装到目录,/home/laowang/apps/gcc

   tar xzvf gcc-8.2.0.tar.gz
   cd gcc-8.2.0
    ./configure --with-system-zlib --disable-multilib --enable-languages=c,c++,fortran   --prefix=/home/laowang/apps/gcc
    make -j 4
    make install

安装 cmake

主要步骤如下,安装到目录 /home/laowang/apps/cmake;
    wget https://cmake.org/files/v3.12/cmake-3.12.1.tar.gz    
    tar xzvf cmake-3.12.1.tar.gz
    cd cmake-3.12.1/
    ./bootstrap --prefix=/home/laowang/apps/cmake
    make
    make install

安装 emsdk

先设置环境变量:
    export LD_LIBRARY_PATH=/home/laowang/apps/gcc/lib64:$LD_LIBRARY_PATH
    export PATH=/home/laowang/apps/cmake/bin:$PATH

下载emsdk
    git clone https://github.com/juj/emsdk.git
    cd emsdk

building...
    ./emsdk install --build=Release sdk-incoming-64bit binaryen-master-64bit
    ./emsdk activate --build=Release sdk-incoming-64bit binaryen-master-64bit
    source ./emsdk_env.sh --build=Release

成功后,可做示例。

安装中,其他所需软件可采用 yum 安装。

其中 gcc,和 emsdk的 make过程时间较长,需要几个小时,如果是因为下载连接中断,可重复执行。

 

### 解决 OpenCV.js 打包失败的问题 打包过程中遇到问题通常涉及配置文件设置不当、依赖项缺失或版本兼容性等问题。针对 OpenCV.js 的打包失败情况,可以采取以下措施来排查和解决问题: #### 1. 确认环境配置 确保开发环境中已正确安装 Node.js 和 npm 工具链。对于特定操作系统下的准备工作如下: - Windows环境下需确认 Visual Studio C++ Build Tools 是否已经安装[^1]。 - Linux (CentOS 7) 下则要保证 GCC 编译器及相关工具集处于最新状态。 #### 2. 安装必要的构建工具 为了成功编译并打包 OpenCV.js 文件,在本地机器上还需要额外安装 Emscripten SDK 或者通过 Docker 镜像方式简化此过程。Emscripten 是一个 LLVM 到 WebAssembly 的编译器,它允许将C/C++代码转换成可以在浏览器中运行的形式。 ```bash # 使用emsdk管理emscripten环境变量 git clone https://github.com/emscripten-core/emsdk.git cd emsdk ./emsdk install latest ./emsdk activate latest source ./emsdk_env.sh ``` #### 3. 获取源码与调整 Makefile 下载官方发布的 OpenCV 源码库,并按照文档指示修改 `Makefile` 中的相关选项以适应 JavaScript 输出目标的需求。特别是要注意启用 EMSCRIPTEN 支持以及指定正确的输出路径。 #### 4. 处理常见错误提示 如果在执行 make 命令期间遇到了诸如内存不足之类的警告,则可以通过增加虚拟内存大小或者减少优化级别 `-O2` 来缓解这些问题;而对于某些特定平台上的链接错误,则可能需要手动编辑 `.a` 库文件列表或将静态库替换为动态共享对象形式。 #### 5. 测试生成物 完成以上步骤后再次尝试重新编译整个项目,直至不再出现致命性的编译时错误为止。一旦获得了有效的 .js 文件及其配套资源(如 wasm),就可以将其集成到前端应用当中进行功能验证了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值