对于嵌入式交叉编译总结

这几天终于搞定了老师项目里我负责的部分,主要是做一个图像采集的手持端,我选用了JZ2440。
从移植内核、制作文件系统、Qt移植总结下来发现在对于代码的交叉编译必须保证编译平台的一致性。对于s3c2440来说是armv4t,所以当我们编译出来程序必须要是

执行 arm-linux-readelf libjpeg.so.62.0.0 -A (libjpeg.so.62.0.0 为我交叉编译出来的)

这里写图片描述
这里的Tag_CPU_arch: v4T 很重要 、我的工具链arm-none-linux-gnueabi-(4.3.2)默认编译出来的程序为V5 平台的,由于我又是新手,开始时给我带来很多困扰

后来我成功搭建好busybox时Qt程序老是出现非法指令问题
我查看了我生成的Qt程序,发现为V5,这也不难解释Illegal instruction错误
这里写图片描述

开始时我走了弯路,我在我写的Qt程序里加入了

这里写图片描述

后来发现还是编译出来为V5,我又尝试在Makefile中加入march指定,发现还是不行,后来突然发现我编译出来的Qt链接库全是V5平台的,怪不得编译出来的程序也是V5,什么样的爹什么样的儿子嘛。于是我又开始程序交叉编译armv4t的qt4.7 。这这间经历的坑我就不多说了,直接贴上我的文件

./configure -opensource -embedded armv4t -xplatform qws/linux-arm-g++ -no-webkit -nomake demos -nomake examples -qt-libtiff -qt-libmng -qt-libjpeg -qt-mouse-tslib -qt-mouse-pc -qt-gfx-transformed -no-mouse-linuxtp -prefix /opt/qt-4.7.1 -I /usr/local/tslib/include -L /usr/local/tslib/lib

加粗的这一句很重要,直接决定了编译出来是armv4t还是armv5
(默认V5)。最后的-I -L根据自己情况写

编译libtools
./configure CC=arm-linux-gcc-yin –host=arm –prefix=/opt/jpeg/libtool-release

编译jpeg-6b
./configure CC=arm-linux-gcc-yin –prefix=/opt/jpeg/jpeg-6b-release –enable-shared –enable-static –host=arm

编译tslib
CFLAGS=-march=armv4t ./configure –host=arm-linux –cache-file=arm-linux.cache -prefix=/usr/local/tslib ac_cv_func_malloc_0_nonnull=yes

这里写图片描述

arm-linux-gcc-yin 是我自己做的脚本。

最后一句:最重要的是统一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux驱动调试--oops信息

在移植dm9000 时被一个错误困扰了很久,当时手里只有printk调试手段,觉得自己应该升级下了,先学习了根据oops信息来调试。 先构造一个错误,insmod后抛出如下信息 我们着重看这几句 PC is at memcpy0x8c/0x29c c0148080 pc : …

浏览器输入网址后发生了什么?

摘自:这是最全的一篇!!!浏览器输入网址后发什么了什么? 作者:程序员cxuan 发布时间: 2021-04-15 11:59:07 网址:https://blog.csdn.net/qq_36894974/article/details/115720479 到现…

fancybox去除不受待见的水平滚动条

用fancybox在嵌套某个页面时,有时莫名其妙的会出现的消除不掉的幽灵般水平滚动条,如何去除: github上的解决方案:https://github.com/fancyapps/fancyBox/issues/24 转载于:https://www.cnblogs.com/kinpauln/p/3145796.html

Word Count作业

Word Count作业 一.个人Gitee地址&#xff1a;https://gitee.com/Changyu-Guo 二.项目简介 该项目主要是模拟Linux上面的wc命令&#xff0c;基本要求如下&#xff1a; 命令格式&#xff1a; wc.exe [para] <filename> [para] <filename> ... -o <filename> 功…

iDempiere = OSGi + ADempiere 一款ERPCRMSCM系统、助力中小企业发展

怀揣着为中小企业量身定做一整套开源软件解决方案的梦想开始了一个网站的搭建。http://osssme.org/ iDempiere OSGi ADempiere 一款ERP&CRM&SCM系统、助力中小企业发展 一句话概括iDempiere是一款基于Compiere/ADempiere的​开源企业级ERP&CRM&SCM系统​&…

字符串 hash 唯一数字_【数字课堂】酒妹带你了解“身份认证技术”

身份认证技术是在计算机网络中确认操作者身份的过程而产生的有效解决方法。计算机网络世界中一切信息包括用户的身份信息都是用一组特定的数据来表示的&#xff0c;计算机只能识别用户的数字身份&#xff0c;所有对用户的授权也是针对用户数字身份的授权。如何保证以数字身份进…

空气中超声衰减

空气中超声衰减是非常厉害的&#xff0c;这导致在空气耦合声换能器的制作或是声传感器的设计是极具挑战的&#xff0c;因此对超声衰减做一个细致的分析是很有必要的。 具体计算根据经验公式如下进行计算 结果如下&#xff1a; Figure 1 超声衰减系数与频率关系图 Figure 2 超声…

java生产者消费者问题代码分析

作者要的是一个生产者生成&#xff0c;接着必须有一个消费者消费&#xff0c;那这不是需要单线程吗&#xff1f;或者使用1个大小的阻塞队列。所以只谈论问题本身&#xff0c;不谈论好不好。 具体代码&#xff1a; Java代码 import java.util.concurrent.locks.Condition; i…

可以ping通 但ssh: connect to host 192.168.0.2 port 22: Connection refused

目录问题描述原因解决问题描述 自己在树莓派端通过SCP指令给电脑上ubuntu传输文件发现提示&#xff1a;ssh: connect to host 192.168.0.2 port 22: Connection refused&#xff0c;并且发现树莓派端是可以ping通ubuntu的。 原因 通过网上查新找到原因&#xff1a; SSH分客…

linux嵌入式贪吃蛇

目标&#xff1a;用游戏手柄控制贪吃蛇 硬件平台&#xff1a;imax6q 版本信息&#xff1a; arm-none-linux-gnueabi-gcc-4.8.3、 qt5.7.1、linux3.0.1 一、交叉编译tslib1.4 由于 imax6q是 armv7-a 构架&#xff0c;所以以后的编译我们都应编译出 armv7 平台的文件 编译参…

2.联邦模式配置---扩容,负载均衡

原理图 两个集群---目的&#xff1a;扩容 HA联邦模式解决了单纯HA模式的性能瓶颈&#xff08;主要指Namenode、ResourceManager&#xff09;&#xff0c;将整个HA集群划分为两个以上的集群&#xff0c;不同的集群之间通过Federation进行连接&#xff0c;使得HA集群拥有了横向扩…

树莓派交叉编译(PS交叉编译链下载安装、配置永久环境变量、带WiringPi库交叉编译、软链接)

目录一、本章概述二、交叉编译工具链的下载安装下载安装交叉编译链临时有效交叉编译链永久有效三、交叉编译的使用对比gcc与armgccPC端交叉编译发送到树莓派运行四、带WiringPi库的交叉编译如何处理复制树莓派上的WiringPi库到主机软硬链接交叉编译一、本章概述 下面将详细介绍…

海量数据处理分析(部分)

2019独角兽企业重金招聘Python工程师标准>>> 1. 海量数据处理分析 原文地址&#xff1a; http://blog.csdn.net/DaiZiLiang/archive/2006/12/06/1432193.aspx 笔者在实际工作中&#xff0c;有幸接触到海量的数据处理问题&#xff0c;对其进行处理是一项艰巨而复…

uboot2015–启动流程分析 imx6q

最近项目原因&#xff0c;要在uboot中增加内核验校和内核损坏修复功能&#xff0c;所以需要回头看看uboot。这次选择了uboot2015来进行分析 uboot是明远睿智提供的。 下载地址 链接&#xff1a;https://pan.baidu.com/s/13SuRii3WTqvFTNIsSS9GAg 密码&#xff1a;65zz 环境&…

树莓派内核开发准备(内核源码获取、启动过程、源码目录树)

目录1.交叉编译工具的安装2.内核源码获取3.嵌入式设备带操作系统的启动过程扫盲4.Linux内核源码树扫盲1.内核源码简介2.Linux内核源代码目录树结构tree指令查看内核源码目录树1.交叉编译工具的安装 参照我之前的笔记 2.内核源码获取 下载哪个版本取决于树莓派的版本&#xf…

柯乐义猜数字游戏

游戏规则&#xff1a;柯乐义请您玩猜数字游戏。后台已经随机生成了一个100到999之间的数字。如果您能在10次之内猜出这个数字&#xff0c;则游戏成功&#xff0c;否则失败。请开始吧。 SilverLight 猜数字游戏&#xff1a;http://keleyi.com/keleyi/phtml/silverlight/ 一次猜数…

fsdisk 分区

芯片主控&#xff1a;imx6q http://lornyin.top/?p545 昨天在做一个linux嵌入式项目时要修改板子的分区&#xff0c;查看了ucl2.xml &#xff08;mfgtool&#xff09;文件后&#xff0c;找到了他的分区脚本 #!/bin/sh# partition size in MB BOOT_ROM_SIZE10# call sfdisk …

树莓派Linux内核源码配置、编译、挂载(boot/kernal/根文件)、开启新内核

目录一、树莓派Linux源码配置(适合树莓派)总体概述配置的三种方式1.照搬厂家的配置&#xff08;使用这种方式&#xff09;2.参考厂家的配置&#xff08;感受一下&#xff09;3.完全自主配置&#xff08;需要一定工作经验&#xff09;二、树莓派Linux内核编译三、树莓派挂载新内…

xshell连接linux出现乱码

今天用Xshell连接linux&#xff0c;查看一个脚本&#xff0c;里面有中文写的注解&#xff0c;出现了乱码&#xff0c;所以记录一下&#xff0c;以便下次用到&#xff0c;也可以帮助遇到同样问题的小伙伴。 以下是乱码的截图&#xff1a; 我们可以照着下面的方式更改编码&#x…

快速排序详解以及java实现

快速排序作为一种高效的排序算法被广泛应用&#xff0c;SUN的JDK中的Arrays.sort 方法用的就是快排。 快排采用了经典的分治思想&#xff08;divide and conquer&#xff09;&#xff1a; Divide&#xff1a;选取一个基元X&#xff08;一般选取数组第一个元素&#xff09;&…