NCNN在arm linux平台上交叉编译

NCNN是腾迅公司为手机开发的高性能神经网络前向计算框架。 不使用GPU,跨平台好,小巧,占资源少,在嵌入式领域有着广泛的应用,我开发ADAS车门预警用到了NCNN。NCNN的交叉编译是算法移植的第一步,详细步骤如下:

  1. github上下载ncnn源码
  2. 解压, 生成ncnn-master目录
  3. 检查交叉编译器的配置,输入arm-linux-gnueabihf-gcc –v 可以打印出编译器的信息
  4. 进入ncnn-master目录,编辑CMakeLists.txt,在

cmake_minimum_required(VERSION 2.8.12)行之后添加下面四行:

set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)

set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)

add_definitions(-D__ARM_NEON)

add_definitions("-mfpu=neon")

        5. 进入ncnn-master下的src目录,编辑CMakeLists.txt,在“include_directories("${CMAKE_CURRENT_SOURCE_DIR}/layer/${NCNN_TARGET_ARCH}")”之后,

添加set(NCNN_TARGET_ARCH "arm")

        6. 在ncnn-master目录下创建build目录,cd build,然后cmake ..

        7. make

        8.sudo make install DESTDIR=/home/yangkm/Studio/test/ncnn-master/target

在target目录可以搜索到libncnn.a

        9. ncnn-master目录下的CMakeLists.txt有一项配置:option(NCNN_SHARED_LIB "shared library support" OFF),把OFF改为ON可以生成动态库。嵌入式系统更适合动态库。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!要在ARM Linux上进行ncnn交叉编译,您可以按照以下步骤进行操作: 1. 安装交叉编译工具链:首先,您需要安装适用于ARM Linux交叉编译工具链。这个工具链包含了ARM架构的编译器和库文件,可以在x86主机上生成ARM架构的可执行文件。您可以从ARM官方网站或者其他第三方提供商处获取适用于您的目标平台交叉编译工具链。 2. 下载ncnn源代码:您可以从ncnn的GitHub仓库中获取源代码。您可以使用git命令进行克隆,或者直接下载压缩包并解压。 3. 配置交叉编译环境:在源代码目录中,打开CMakeLists.txt文件,找到相关的交叉编译选项。根据您的目标平台交叉编译工具链的路径,设置正确的选项。一般来说,您需要设置CMAKE_SYSTEM_NAME为Linux,CMAKE_SYSTEM_PROCESSOR为arm,CMAKE_C_COMPILER和CMAKE_CXX_COMPILER为交叉编译工具链中对应的编译器。 4. 创建构建目录:在源代码目录外创建一个新的目录,用于构建过程。例如,您可以在源代码目录同级创建一个名为"build_arm"的目录。 5. 进入构建目录并运行cmake:使用cd命令进入构建目录,然后运行cmake命令来生成Makefile。 ``` cd build_arm cmake .. ``` 6. 执行make命令进行编译:运行make命令开始编译ncnn。 ``` make ``` 7. 编译完成后,您将在构建目录中找到生成的可执行文件和库文件,这些文件是针对ARM Linux平台的。 请注意,以上步骤只是一个大致的指导,具体的步骤可能因您使用的工具链和平台而有所差异。在实际操作中,您可能还需要根据具体情况进行一些调整和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值