ncnn的完整编译过程

1. 下载工程源码:

登录到https://github.com/Tencent/ncnn网址,登录后页面如下图所示:

 

2. 选择git clone或zip download方式下载源码。

 

3. 进入到ncnn源码根目录:

$ cd <ncnn-root-dir>

 

4. 创建build文件夹:

$ mkdir build

 

5. 进入到build文件夹:

$ cd build

 

6. 进行此步前要求系统中已经安装了海思相应版本的交叉编译工具,关于这部分内容,请参考海思提供的SDK中的相关文档。

# choose one cmake toolchain file depends on your target platform

$ cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/hisiv300.toolchain.cmake ..

$ cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/hisiv500.toolchain.cmake ..

$ cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/himix100.toolchain.cmake ..

此处以Hi3516A举例,因而选择红色标注的项。

 

7. 注意:

CMake版本必须保证为比较新的,否则会提示错误。笔者的cmake版本为:cmake version 3.14.4。

 

8. 编译:

$ make -j4

 

9. 安装:

$ make install

 

10. 执行以上步骤后会在<ncnn-root-dir>/build/install下生成inclue和lib文件夹,其中内容如下图所示:

其中,lib目录下的libncnn.a是生成的最终静态库,include目录下的各个.h文件是编写编译应用程序的时候需要包含的头文件。

### NCNN在Linux环境下交叉编译教程 #### 准备工作 为了成功完成NCNN的交叉编译,需先准备必要的工具和环境。确保已安装Git用于获取源代码,并准备好适用于目标架构(如AARCH64)的交叉编译工具链。 #### 获取源码 通过Git克隆官方仓库来获得最新的NCNN源代码: ```bash git clone https://github.com/Tencent/ncnn.git cd ncnn ``` #### 创建构建目录并设置CMake参数 创建专门用于存储编译文件的新建子目录`build-aarch64-linux`,这有助于保持项目结构清晰整洁。接着指定适合于特定硬件平台的CMake配置选项,特别是要指明使用的交叉编译工具链文件位置[^1]。 ```bash mkdir -p build-aarch64-linux cd build-aarch64-linux cmake \ -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake .. ``` 这里假设已经有一个名为`aarch64-linux-gnu.toolchain.cmake`的工具链定义文件位于项目的根目录下的`toolchains`文件夹内。此文件应包含有关如何调用正确版本的GCC或其他所需编译器的具体指示。 #### 编译过程 启动多线程编译流程以加速整个过程,通常建议使用机器支持的最大核心数减去一作为并发作业的数量。完成后执行安装命令将生成的目标库复制到适当的位置以便后续链接或分发。 ```bash make -j$(($(nproc) - 1)) sudo make install ``` 对于不同的处理器体系结构,比如MIPS,则需要调整相应的编译器路径和其他相关设置,例如操作系统名称、处理单元型号以及具体的编译器二进制文件地址等信息[^2]。 #### 特殊情况处理 如果遇到依赖项问题或者其他特殊情况,可能还需要额外修改某些脚本或者配置文件中的预设值,像上面提到的例子那样针对Protobuf这样的第三方组件做特殊处理[^3]。 总之,在任何情况下都应当仔细阅读所选平台文档和技术资料,确保所有步骤均按照最佳实践来进行操作。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值