交叉编译bcm2835-1.42库用于树莓派
Cross Compile bcm2835-1.42 library for raspberry pi.
我正试图在Ubuntu中为我的树莓pi板交叉编译库bcm2835-1.42。下载库并使用以下命令进行交叉编译:
wget网址:www.airspayce.com/mikem/bcm2835/bcm2835-142.tar.gz
tar-xvf bcm2835-1.42.tar.gz
cd bcm2835-1.42
/configure-host=arm-prefix=$(DEVELROOT)CC=arm-linux-gnueabihf-gcc-4.8 ar=arm-lianux-gnuebihf-ar-4.8
制作
当我制作了源代码时,我坚持使用以下错误消息。
/tmp/ccxDzazg.s:汇编程序消息:
/tmp/ccxDzazg.s:299:错误:屏障类型无效--
dmb ldr r0,[r0] dmb' /tmp/ccxDzazg.s:365: Error: invalid barrier type --
dmb str r1,[r0]dmb'/tmp/ccxDzazg.s:453:错误:屏障类型无效--dmb ldr r0,[r0] dmb' /tmp/ccxDzazg.s:480: Error: invalid barrier type --
dmb str r1,[r6]dmb'/tmp/ccxDzazg.s:644:错误:屏障类型无效--dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:731: Error: invalid barrier type --
dmb str r1,[r0]dmb'/tmp/ccxDzazg.s:807:错误:无效屏障类型--dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:868: Error: invalid barrier type --
dmb str r1,[r0]dmb'
Solve,它可以与bcm2835-1.44库配合使用。
如果你不必使用bcm2835-1.42库,Raspberry Pi论坛上的这篇文章建议使用QEMU,步骤如下:
- 将SD卡连接到主机后,执行
sudo fdisk -l
并找到与您的SD卡大小相匹配的磁盘 - 使用
sudo mount /dev/XXXX /mnt
安装SD卡(XXXX
是代表SD卡的标识符) - 执行
sudo apt-get install qemu qemu-user qemu-user-static
安装qemu - 使用
sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin
将模拟文件复制到SD卡 - Chroot到Pi文件系统
sudo chroot /mnt
- 现在应该会提示您一个新的命令行,检查它是否与
root:/# gcc -v
一起工作 - 导航到要编译的项目,然后运行所需的Makefile或gcc或ARM构建工具,它将开始构建
- 完成后,键入此项退出chroot
exit
- 然后卸载设备
sudo unmount /dev/sdc2
- 1d 智能指针不适用于语法 (*)++
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 用于访问容器<T>数据成员的正确 API
- 重载操作程序时出错>>用于类中的字符串 memebr
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- C++中的cin.ignore()函数不适用于整个流
- 没有用于初始化C++中的变量模板的匹配构造函数
- 用于C++中带有数组和指针的循环
- 为什么它不适用于Visual 2019的原因
- 使用在用于SFINAE的void_t中具有参数的方法
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 重载==不适用于二进制树
- Insert函数不适用于2 if语句C++
- 用于矢量处理的多个线程
- 使外部项目可用于find_package CMake
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 为什么模数运算符不适用于该代码
- 并行用于C++17中数组索引范围内的循环
- 将fold表达式与std::一起用于两个元组
- 交叉编译bcm2835-1.42库用于树莓派