jetson用什么编译器_Jetson ARM SeetaFace编译
SeetaFace简介
SeetaFace依赖于OpenCV,对于Tegra on Ubuntu,Nvidia提供libopencv4tegra并且可以使用Cuda加速。
准备工作
1.阅读OpenCV4Tegra-README.txt,下载对应板子版本的cuda与libopencv4tegra的repo文件
2.打开ubuntu的universe源:
sudo apt-add-repository universe
并且可以换成国内的ubuntu-ports源。
3.下载SeetaFace
git clone https://github.com/seetaface/SeetaFaceEngine.git
下载后在其它主机上解压出FaceIdentification/model/下的rar压缩包
4.下载cmake最新版
下述编译、安装操作在板子上执行
先安装Cuda(可选)
$ sudo dpkg -i cuda-repo-__.deb
$ sudo apt-get update
$ sudo apt-get install cuda-toolkit-
$ cat << END >> ~/.bashrc
# For 32-bit systems (eg: most ARM systems),Add 32-bit CUDA library & binary paths:
export PATH=/usr/local/cuda-/bin:\$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-/lib:\$LD_LIBRARY_PATH
END
$ source ~/.bashrc
OpenCV for Tegra 安装
$ sudo dpkg -i libopencv4tegra-repo-__.deb
$ sudo apt-get update
$ sudo apt-get install libopencv4tegra libopencv4tegra-dev
编译安装cmake
遵循README
编译SeetaFace
过程与前一篇博文一致,需要修改一些地方以支持在ARM下编译(针对2016年11月份版本,之后的版本这些问题可能不复存在):
1.编译器提示找不到-msse4.1
-m打开与硬件相关的一些选项,sse便是针对x86、x86_64进行的优化,在ARM上没有这个选项,需要去掉。
在两个CMakeLists.txt中注释掉 -msse4.1 相关的行。
2.找不到xmmintrin.h
修改 FaceIdentification/src/math_functions.cpp
将 'xmmintrin.h' 替换为 'arm_neon.h',并将x86intrin.h那行注释掉。
此外还需替换掉一些数学运算函数,具体要查阅许多资料。gitbub中pull request中有人提交了补丁,在math_functions 的 添加使用arm neon写的simd_dot函数,直接替换文件即可,点击查看。
3.编译时报错: #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
方法:
在CMakeLists.txt的CMAKE_CXX_FLAGS_RELEASE中加上-mfloat-abi=hard -mfpu=neon
注意是硬浮点还是软浮点,float-abi选项有hard、soft、softfp,如果写成了softfp,而硬件支持硬浮点可能导致运行程序时找不到动态链接库的问题。(至于如何查看动态链接库是否是硬浮点,可以运行ldconfig -p|grep xxx来查看输出中是否包含hardsoft字样)
所有以后发现找不到动态链接库,而ldconfig -p能找到、ldd却找不到且设置LD_LIBRARY_PATH也无效的情况下就要考虑CPU架构不同、编译选项不同了。
4./usr/include/c++/4.8/iostream:38:28: fatal error: bits/c++config.h: No such file or directory
一种简单的解决方式:sudo apt-get install gcc-4.8-multilib g++-4.8-multilib
jetson用什么编译器_Jetson ARM SeetaFace编译相关推荐
- jetson用什么编译器_Jetson Nano安装 Jupyter lab
1,先安装一些依赖 sudo apt install nodejs npm 2,安装pip3包管理器 sudo apt install python3-pip 3,安装jupter lab pip3 ...
- CubeMx 生成的FreeRTOS 代码在ARM compiler6 编译__forceinline 报错的解决方法
一.问题 如题,CubeMx 生成的FreeRTOS 代码在ARM compiler6 编译__forceinline 报错的解决方法. 二.解决方法 第一种方法,将编译器换回default comp ...
- [ARM]【编译】【实践】 - 浮点编译选项NEON引发的Skia的库Illegal instruction运行错误和解决办法
前言,ARM编译器选项除了优化系统代码性能外,往往还具备其他一些设定,例如警告级别,和指令集的扩展 本文论述工作中遇到的一个编译开源浏览器chromine遇到的问题,由编译选项引发的可执行文件的Ill ...
- ARM服务器编译安装ClickHouse
目录 一.编译安装ClickHouse背景 二.编译安装ClickHouse方法 三.编译安装ClickHouse环境 四.编译安装ClickHouse步骤 1,安装依赖项 2,编译安装cmake 3 ...
- 为 QEMU ARM 仿真器编译 Linux 内核:QEMU 模拟 ARM 环境
QEMU 是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以 GPL 许可证分发源码的模拟处理器,在GNU/Linux 平台上使用广泛.简单来说,QEMU 是一个虚拟机,与常见的 Vm ...
- Genymotion模拟器安装ARM架构编译应用失败解决方案
我们在安装一些应用到Genymotion模拟器会提示:adb: failed to install xx.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: ...
- NVIDIA Jetson Xavier NX 修改设备树和编译内核
为 NVIDIA Jetson Xavier NX 更改设备树和编译内核 NVIDIA Jetson Xavier NX 模块 如果您正在为 NVIDIA Jetson 模块设计定制载板,您可能需要编 ...
- armgcc交叉编译的文件无法运行_从0开始搭建基于ARM GCC的软件系统02——使用ARM GCC编译SDK
本文以STM32L4VGT6为例,因为手上只有这么一块开发板.其它IC处理方法应该类似. 一.准备工作 1.打开官网https://www.st.com/content/st_com/en.html, ...
- 如何在ARM平台编译NAMD
简介 NAMD是一种平行分子动力学代码,设计用于大型生物分子系统的高性能模拟. 利用Charm ++并行编程框架,NAMD可以扩展到几个核心,用于典型的仿真,超过500,000个核心,用于最大的仿真. ...
最新文章
- markdown 流程图_Markdown 进阶技能:用代码画流程图(编程零基础也适用)
- python核心编程:杂记2
- 对钱感兴趣?聊聊互联网工资收入的组成
- (60)Verilog HDL测试激励:复位激励1
- 安卓模拟器切换横屏之后怎么返回竖屏
- 假如你是架构师,你要做些什么
- 20155210 网络攻防技术 实验三 免杀原理与实践
- linux下目录简介——/proc
- excel表格怎么画斜线_怎么画出漂亮的Excel表格线?
- Numpy向量化运算
- 防火墙和代理服务器之间有什么区别
- asp.net 邮件功能
- ios点击推送闪退_王者ios14苹果手机闪退已修复,腾讯痛失百万玩家能否再回来...
- 剑指offer算法题028:数组中出现次数超过一半的数字
- 中国.net域名网站的“前世今生”,那些年的光辉
- matplotlib数据可视化实验报告1(最终版)
- 【C语言】逗号表达式
- Autonomous Aerial Dual-Target Following Among Obstacles
- CGroup的原理和使用
- 报错:java.lang.ClassNotFoundException: Cannot find implementation for解决方法