MNN使用0-安装与编译

MNN使用0-安装与编译 Debug 2023-09-07 18:04:43 575

1 mac上编译使用MNN

1.1 依赖环境安装

  • brew install protobuf
  • cmake的安装

1.2 编译MNN

若出现编译错误,检查CMakeLists.txt中的编译选项,该关掉的关掉就行。
编译好之后的MNN工具都在build目录下面,demo工程在目录demo文件夹下面
cd path/to/MNN
./schema/generate.sh
mkdir build && cd build
cmake -DMNN_BUILD_DEMO=ON ..
make -j8

在编译时,CMakeLists.txt中把以下选项设置为ON:

MNN_BUILD_DEMO
MNN_BUILD_TRAIN
MNN_BUILD_QUANTOOLS
MNN_BUILD_CONVERTER
MNN_EVALUATION
MNN_BUILD_BENCHMARK

1.3 安卓相关编译

# 安卓相关编译(cd到build目录下)
./tools/script/get_model.sh(可选,模型仅demo工程需要)。注意get_model.sh需要事先编译好模型转换工具。
cd project/android

# 编译armv8动态库(安卓下没法编译DMNN_BUILD_CONVERTER,所以必须设置为OFF,否则会出错)
# 注意:在 .bashrc 或者 .bash_profile 中设置 NDK环境变量,并将build_64.sh和build_32.sh中NDK目录的名字修改为你安装NDK时添加在~/.bash_profile中的名字
# 编译时把以下选项打开(其中,OPENCL、OPENGL、VULKAN三个选项最好单独编译,不然放在一起编译容易啥结果都没有(不清楚原因))
# cd到project目录下面/android
mkdir build_64 && cd build_64 && ../build_64.sh \
-DMNN_BUILD_DEMO=ON \
-DMNN_BUILD_TRAIN=ON \
-DMNN_BUILD_QUANTOOLS=ON \
-DMNN_EVALUATION=ON \
-DMNN_BUILD_BENCHMARK=ON \
-DMNN_OPENCL=ON \
-DMNN_OPENGL=ON \
-DMNN_VULKAN=ON \
-DMNN_ARM82=ON
# 编译armv7动态库(DMNN_BUILD_CONVERTER必须设置为OFF,否则会出错)(OPENGL编译失败,不知道为啥)
mkdir build_32 && cd build_32 && ../build_32.sh \
-DMNN_BUILD_DEMO=ON \
-DMNN_BUILD_TRAIN=ON \
-DMNN_EVALUATION=ON \
-DMNN_BUILD_QUANTOOLS=ON \
-DMNN_BUILD_BENCHMARK=ON \
-DMNN_OPENCL=ON \
-DMNN_OPENGL=ON \
-DMNN_VULKAN=ON

2 ubuntu上编译使用MNN

2.1 依赖环境安装

2.1.1 cmake安装(3.10以上)

我安装的是3.14
tar -zxvf xx.tar.gz
# 默认安装在/usr/local/bin下面,如果想改变安装位置可以改成/bootstrap '--prefile=PATH'
./bootstrap
make
sudo make install

# 检查是否安装好:
cmake --version

2.1.2 protobuf安装(3.0以上版本)

  1. 安装前须安装好vim、make、g++:
apt-get install g++
apt-get install vim
apt-get install make

下载protobuf
官方安装教程参考:

https://github.com/protocolbuffers/protobuf/blob/master/src/README.md

前提,已经安装好以下几个包:

sudo apt-get install autoconf automake libtool curl make g++ unzip

下载链接: https://github.com/protocolbuffers/protobuf/releases

我下载的是3.8版本。

cd到下载解压后的目录下并执行:

./configure
make
make check
sudo make install
sudo ldconfig

如果安装时出现Cannot install to /usr错误,则执行make clean即可(可能是因为之前装过protobuf)

  1. 检查安装是否成功
protoc --version

2.1.3 gcc安装(4.9以上)

GCC可以用来编译C/C++、FORTRAN、java、OBJC、ADA等语言的程序

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-6
# 将默认的GCC和G ++进一步更改为版本6
sudo apt install g++-6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6

2.2 编译MNN

cd /path/to/MNN
./schema/generate.sh
./tools/script/get_model.sh(可选,模型仅demo工程需要)
mkdir build && cd build && cmake .. && make -j4

若出现run ./tools/script/get_model.sh error,则可能是protobuf没有安装好

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
Debug
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
Debug
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区