ubuntu静态编译
Ubuntu环境下Pixhawk原生固件PX4的编译
分类:无人机ubuntu代码编译Pixhawk
(3946) (6)
Ubuntu下Pixhawk原生固件PX4的编译这个问题困扰了两天时间,可能是博主脑力不够,主要是环境搭建不起来,主要原因应该是路径的原因,最后在大师傅的帮助下还好成功将路径搭建好,成功编译。
下面就跟大家分享一下环境搭建的过程。
1.操作环境
每次写文章,环境一定要介绍的,不同的环境总会出现不同的问题
我的环境是Windows下面安装虚拟机,虚拟机跑Ubuntu
Windows:win10 64位
虚拟机:VMware Workstation 12 Pro 12.1.0 build-3272444
Ubuntu:Ubuntu15.10
2.编译环境搭建
(1)权限设置
官方提示:
Warning Never ever fix permission problems by using 'sudo'. It will create more permission problems in the process and require a system reinstallation to fix them.
意思是你会遇到权限问题,不要用sudo解决,那样会带来更多问题,但是我没听他的,我没用,最后也是实现了
官方提供指令
[plain] view plain
然后注销,重新登录生效
(2)安装
更新包列表,安装下面编译PX4的依赖包。PX4主要支持的系列:
NuttX based hardware: Pixhawk, Pixfalcon
Snapdragon Flight hardware: Snapdragon
Raspberry Pi hardware: Raspberry Pi 2
Host simulation: jMAVSim SITL and Gazebo SITL
注意:安装Ninja Build System可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。
[plain] view plain
卸载模式管理器
[plain] view plain
更新包列表和安装下面的依赖包。务必安装指定的版本的包
[plain] view plain
上面代码中红色部分大家需要一高警惕,gcc-arm-none-eabi版本导致PX4/Firmware编译错误,现在apt-get安装的gcc-arm-none-eabi基本上是4.9的版本,但是这个固件需要gcc-arm-none-eabi 4.8de 版本,所以最后安装好以后,查看你的gcc-arm-none-eabi版本,如果是4.9需要手动安装4.8的版本,安装gcc-arm-none-eabi 4.8的版本的方法如下:
[plain] view plain
【Warning】上面红色的路径一定要添加正确,不然问题很多,我第一次就输入错误,结果结果开不了机了,反复输入密码。博主装的是Ubuntu 64位系统,而上述arm-none-eabi是直接下载的编译好的32位,还需要安装一个东西
[plain] view plain
可以检查arm-none-eabi 4.8.4是否安装成功,输入以下指令:
[plain] view plain
如果出现如上信息,交叉编译环境搭建就搭建成功了
(3)代码编译
根据PX4中文维基官网教程。
安装Git
[plain] view plain
下载代码
[plain] view plain
初始化
先进入Firmware文件夹,进而进行初始化、更新子模块操作,耐心的等待……
[plain] view plain
权限
编译时会遇到权限问题,执行指令
[plain] view plain
-R 是对文件下面包含的子文件权限问题,* 是对所有文件的权限问题
编译
[plain] view plain
注意到“make”是一个字符命令编译工具,“px4fmu-v2”是硬件版本,“default”是默认配置,所有的PX4编译目标遵循这个规则。
最后附一张编译成功的代码,如果这样你还有问题,请给我留言。
[plain] view plain
-- nuttx-px4fmu-v2-default
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
-- Found pythonInterp: /usr/bin/python (found version "2.7.10")
-- Using C++03
-- Release build type: RelWithDebInfo
-- Adding UAVCAN STM32 platform driver
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lihongwei/Documents/Firmware/build_px4fmu-v2_default
#+@Tools/check_submoles.sh
PX4 CONFIG: px4fmu-v2_default
Scanning dependencies of target git_mavlink
Scanning dependencies of target git_uavcan
Scanning dependencies of target git_gencpp
Scanning dependencies of target git_genmsg
[ 0%] Generating git_init_mavlink_include_mavlink_v1.0.stamp
[ 0%] Generating git_init_src_moles_uavcan_libuavcan.stamp
[ 0%] Generating git_init_Tools_genmsg.stamp
[ 0%] Generating git_init_Tools_gencpp.stamp
[ 0%] Built target git_uavcan
[ 0%] Built target git_mavlink
[ 0%] Built target git_genmsg
[ 0%] Built target git_gencpp
❷ ubuntu下如何编译C语言
1、首先打开ubnutu开发环境,直接输入组合键ctrl+alt+t调出命令行界面。
❸ ubuntu+cmake+opencv 静态库编译和使用
https://opencv.org/releases/page/2/
能看到其中一个很明显的改变就是“BUILD_SHARED_LIBS=NO”这个选项,代表了不编译动态库,而是编译静态库。后面那些则是增加一些opencv所依赖的第三方库,也要把他们一起生成才行。
参考连接: https://blog.csdn.net/woainishifu/article/details/79712110
缺少:libwebp.a
缺少:libIlmImf.a
缺少:liblibjasper.a
缺少:libittnotify.a
先完整编译opencv 环境
https://www.jianshu.com/p/f73fcb9a0b1a
再使用 locate 查找 .a静态文件
❹ 在ubuntu系统中如何用GCC编译运行一个C程序
1、确定安装了gcc编译器后,接下来用vim编辑一个c文件。
❺ ubuntu创建静态库.c文件怎么输入中文
ubuntu创建静态告纳答库.c文件输入中文方法如下:
1、在终端中打开一个文本编辑器,例如gedit或vim。
2、在文本编辑器中创建一个新的.c文件。
3、在.c文件中输入中文时,需袜慧要确保文件的编码格式是UTF-8。在gedit中,可以在“文件”菜单中选择“另存为”,然后在“保存文件”对话框中选茄链择“UTF-8”编码格式。在vim中,可以在编辑模式下输入“:setfileencoding=utf-8”,然后按回车键。
4、在.c文件中保存并关闭编辑器。
5、使用gcc编译器将.c文件编译成静态库。
6、使用nm命令检查静态库是否生成成功。
❻ OpenCV静态库编译与链接
以OpenCV-4.0.0为例说明在Ubuntu环境下的静态库编译与链接方法:
opencv依赖第三方的库,所以当把opencv编译成静态库的时候,注意要把它运行时必要的依赖库也编译进来,opencv源码内有自己的3rdparty,主要有:libjpeg、libpng、libtiff、libzlib、libwebp、libprotobuf、ffmpeg(用到video时编译)、libgtk(用于显示界面显示,服务器部署不会用到),可以通过cmake -LA来查看配置的编译信息,再根据信息考虑把opencv的哪些mole编译进来。
链接时指定opencv的静态库以及依赖的库。另外需要注意头文件的问题,通过CMakeLists把opencv加入项目编译时,由于opencv编译完成后要install才会把所用的头文件集中拷贝到一个地方,所以事先将头文件拷贝到了项目的opencv目录下。