补充上一篇(JRTPLIB在arm和pc间收不到数据包的问题)

Jrtplib移植到arm平台 本文描述Jrtplib库在arm平台上的移植 阅读详情

今天花了一天的时间实现了jrtp到pxa270的移植,下面把其中遇到的问题及相应的解决方法说一下。

其实jrtp的arm交叉编译很简单,具体步骤可以如下:

cd jrtp所在目录 ——> ./configure --host=arm-linux CXX=arm-linux-g++ ——>make——>make install

我被卡住的原因是在make的最后一个阶段链接生成.so库文件时发生了"relocations in generic elf"的错误,从错误的提示信息"file in wrong format"看,可能是所用的链接工具arm-linux-ld与被连接的文件在编译时所用的gcc工具不匹配所致,由于make信息所显示的链接工具是arm-linux/bin/ld二不是arm-linux-ld,所以起先我认为是configure的链接选项没有设置好,拼命地找方法去改变链接工具,但是没有成功。万般无奈之际Google起来,从别人对于relocations in generic elf这一错误的讨论的只言片语中,我感觉到了一种可能的解决方法——重新拷贝jrtp源程序,重新交叉编译,这一次成功了。分析起来可能的原因是:我之前用那个源文件编译了在pc上的jrtp库,在那其中生成了一些目标文件没有被覆盖还停留在源文件目录里,故而导致了relocations in generic elf错误。至于其它的一般的问题,在很多问章里面都有叙述,我简单罗列如下:

1> 在RTPSession.h中加入头文件stdio.h —— 这个相关问题我没遇到,因为在解决上面问题的过程中我就都一并把它改了。

2> 在把--host选项配置成arm-linux时,会把target的架构默认为arm的,而大部分arm架构的处理器的存储器组织都是Big-Endian的,所以配置程序会自动在RTPSession.h文件中生成#define RTP_BIGENDIAN项,而这就可能会导致arm与x86架构的pc机之间数据交换的出错,因为x86架构的存储器组织一般是Little_Endian的。而PXA270虽然也是arm架构,但其存储器组织确实Little_Endian的(可能因为它是intel出的片子吧),make之前应该注释掉#define RTP_BIGENDIAN,从而编译成little-endian的jrtp库。但是我还是有一个疑问:编译成Little-Endian的jrtp库能够在Big-Endian建构的一般arm片子上跑吗?按照上面的叙述推理应该是可以的。

3> jrtp库编译成功以后,我便移植了其中的example1到pxa270上,可以预料地,我碰到了cann't retrieve login name 的错误。关于这个错误的解决,上边转载的文章里已经有详细的说明,我的做法就是让char *loginname = "root"。

写完收工 ^_^

避坑指南:JRTPLIB交叉编译时容易忽略的3个CMAKE参数(附实测解决方案) 本文详细解析了JRTPLIB交叉编译过程中最容易被忽视的3个CMAKE参数问题,包括CMAKE_TOOLCHAIN_FILE路径陷阱、CMAKE_INSTALL_PREFIX权限问题以及CMAKE_FIND_ROOT_PATH配置技巧。针对每个问题提供了实测有效的解决方案,帮助开发者避免常见编译错误,提升嵌入式开发效率。特别适合需要跨平台编译开源库的工程师参考。 阅读详情

相关推荐

豆包大模型API调用两种方法

ps: 因为是自用,所以这里图方便采用硬编码密钥的形式;如果有需求/安全风险,建议参考官方教程设置ARK_API_KEY环境变量的方式。坏处是:看别人的教程走了一大圈弯路hh;基础调用的话方法一就可以满足了,也比较方便快捷,容易上手。将 <Model> 替换为 Endpoint ID即可。创建就按照提示填写信息就行,需要实名认证,有免费额度。绿框框里就是Endpoint ID。

kkkkkkkkkasey的博客 1万+

jrtp上出现的不到用户名的问题

后来程序固化到ARM上以后,报得不到用户名的错误(ERROR:Can't retrieve login name),因为固化的Linux内核自动运行取消了用户的设置,应用程序在执行的时候有一个函数是得到用户名。   解决方法   板子上的文件系统不需要用户名就可以直接登录,而在JRTPLIB库中的RTPSession中的   Create->InternalCreate->CreateC

lishaoqi_scau的专栏 1128

统信UOS下获取root权限的两种姿势:图形化开启开发者模式 vs 命令行直接提权

本文详细解析了统信UOS下获取root权限的两种方法:通过图形界面永久开启开发者模式和使用命令行临时提权。开发者模式适合系统级开发,提供完整root权限但降低安全性;临时提权则更灵活,适合日常管理任务。文章还对比了两种方案的优缺点,帮助用户根据需求选择最佳权限管理策略。

weixin_30266885的博客 514

jrtplib在dm355和motavista linux上的移植

交叉编译库和例子交叉编译库./configure -prefix=/home/jrtp/ -host=arm-montavista-linux CC=/opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc CXX=/opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t

WishMaster 2237

解决fetch_california_housing数据集403错误的3种实用方法(附手动下载地址)

本文针对机器学习中常见的fetch_california_housing数据集403 Forbidden错误,提供了三种实用的解决方案。从理解HTTP 403错误的根源出发,详细介绍了修改源码路径、使用国内镜像源以及手动下载并配置数据文件这三种方法,并附带了可靠的手动下载地址,帮助开发者彻底解决数据加载障碍,确保机器学习项目顺利进行。

weixin_29062963的博客 558

具身智能数据采集的工程化指南:从时间同步到质量校验

具身智能的模型训练离不开高质量的多模态轨迹数据,而数据采集并非简单的传感器记录。真实场景中,相机图像、机械臂关节状态与力觉信息必须在时间轴上精确对齐,标定的漂移和格式混乱会让看似正常的数据无法用于训练。时间同步与标定一致性,是决定数据质量的核心技术环节。在机器人抓取、操作等工程应用中,一套包含多传感器同步、轻量记录脚本、自动化质量校验与版本管理的数据采集流程,能大幅降低数据生产的失败率。本文从工程视角拆解具身数据采集中的典型问题,并给出可落地的流程设计与校验方法,帮助团队构建可持续迭代的高质量数据集。

weixin_30603633的博客 510

这些年我记下的一些编程错误

编程不经历错误或警告,怎能见彩虹,没有人能随随便便成为高手。身为程序员的我们,如果哪一天没有了错误或警告的提示,一定会有一种不祥的预感,对吧,都懂的。编程N年来,碰到过的问题多得自己都记不清了,你也一样,如果可以选择,我愿时光倒流,真希望都能记下来,现在就可以写本《错误集》了,。下面是我心情好时,有想法时,随手记下的几个错误或警告,遗憾的是,这些年,就记下那么几个而已,见笑了,希望能给像我一样在路

良师,益友 1万+

RK3588嵌入式开发实战:U-Boot设备树文件修改全指南(含常见踩坑点)

本文为RK3588嵌入式开发者提供了一份详尽的U-Boot设备树文件修改实战指南。文章深入解析了设备树的核心架构,从基础硬件适配到时钟、电源管理等进阶配置,并重点总结了内存节点、串口输出、电源时序等常见踩坑点与解决方案,旨在帮助开发者高效、稳健地完成U-Boot移植与定制工作。

yhn456789的博客 729

有关Relocations in generic ELF (EM: 8)错误的解决方法

待写。。。

Caroline-Liu的博客 8656

ESP8266红外控制美的空调:从协议解析到Home Assistant集成

红外遥控技术作为一种经典的非接触式控制方式,其原理是通过红外发光二极管发射经过特定频率调制的光信号来传递指令。在物联网和智能家居领域,利用微控制器如ESP8266模拟红外信号,成为将传统家电接入智能生态系统的关键技术。这项技术通过精准解析和生成符合设备厂商私有协议的红外编码,实现了对空调、电视等设备的远程与自动化控制,具有很高的实用价值。本文聚焦于美的空调的红外协议,深入探讨了其脉冲宽度调制(PWM)和全量式编码的特点,并提供了基于ESP8266的完整解决方案,包括硬件连接、库函数API详解以及如何将其无缝

weixin_30718391的博客 400

华为OD机试 - 文件存储系统的排序 - 深度优先搜索dfs(Java 双机位C卷 200分)

华为OD机试 双机位C卷题库疯狂收录中,刷题。

学Java,找哪吒 719

Relocations in generic ELF (EM: 3)错误的解决方法

在编译Qt4.8.0源码时,出现: Relocations in generic ELF (EM: 3)问题,上网查了下,只要条命令就解决问题了,进入程序目录,终端执行。 #make clean -w 这个命令会删除一些文件,执行完后,你再重新编译应该就没错了 !!!

1万+

基于STM32设计的水质检测系统_333

水质安全对生态环境、农业生产、工业制造以及人类健康至关重要。针对传统水质检测方式检测周期长、成本高、实时性差的问题,本项目设计并实现了一种基于STM32的水质检测系统。系统采用STM32F103RCT6作为主控芯片,集成水温、pH值、电导率和浊度等传感器,能够实时采集水质数据,并通过OLED显示屏进行本地显示。同时,利用Air724UG 4G模块通过MQTT协议将数据上传至华为云IoT平台,实现远程监测。用户可通过Qt5开发的Android手机APP和Windows上位机查看水质数据,并接收超限报警提示。此

713

JRTPLIB在arm和pc间收不到数据包的问题

 最近本人在作关于RTP的项目,要求在arm和pc间用RTP协议传输数据。    1. 下载jrtplib-3.7.1和jthread-1.2.1。    2. pc上编译很简单,windows下编译过程如下:    首先编译jthread库。然后解压缩jrtplib,打开jrtplib.dsw工程,注意工程的include路径设置,要包含jrtplib和jthread的头文件,然后编

float的专栏 951

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

使用Jrtplib编译的arm程序和pc无法通信的问题

http://blog.chinaunix.net/uid-24456535-id-2606931.html 最近本人在作关于RTP的项目,要求在arm和pc间用RTP协议传输数据。 1. 下载jrtplib-3.7.1和jthread-1.2.1。 2. pc上编译很简单,windows下编译过程如下:     首先编译jthread库。然后解压缩jrtplib,

三言两语 1084

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

linux 下 jrtplib+jthread 交叉编译

一、移植JRTPLib到嵌入式(arm)平台 JRTPLIB库是一个RTP协议的开源库,使用这套库文件,我们可以创建端到端的RTP连接,实现数据的实时传输。 JRTPLIB是使用标准c++编写的. 下载 你可以在这里下载JRtplib,同时,需要下载JThread。 解压 解压目录/usr/local/software/ tar -jxvf jrtplib

武溪嵌人 1159

Windows与ARM平台的基于JRTPLIB的RTP通信

Windows与ARM平台的基于JRTPLIB的RTP通信及其问题解决    按照以上两篇文章在WINDOWS,ARM上成功测试好JRTPLIB后,(当然要在arm端ping通windows主机地址,同时关闭双方的防火墙)下面就介绍如何测试WINDOWS,ARM之间的RTP通信。在jrtplib解压后的目录里有example文件夹,里面的程序可以提供测试用。Example1可以用来

yaopingcs的专栏 2084

jrtplib+jthread 交叉编译

转载地址:http://blog.youkuaiyun.com/futurepeter/article/details/5312814 一、移植JRTPLib到嵌入式(arm)平台 JRTPLIB库是一个RTP协议的开源库,使用这套库文件,我们可以创建端到端的RTP连接,实现数据的实时传输。 JRTPLIB是使用标准c++编写的. 下载 你可以在这里下载JRtplib,同时,需要下载JThrea

康源 留言的专栏 1061

JRTPLIB库arm交叉编译详解

系统平台:Ubuntu  16.04  开发板:gec6818  ARM jrtplib库:libjrtp.so.3.11.1.tar.gz jthread版本:libjthread.so.1.3.3.tar.gz http://research.edm.uhasselt.be/jori/page/CS/Jrtplib.html 本交叉编译是将RTP接收端放在ARM开发板上运行,RT

qq_35547767的博客 2210

基于JRTPLIB库的RTP数据传输设计文档

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class

游手好弦 信步涂鸦 2359

移植JRTPLib到Montavista

http://www.cnblogs.com/rockstone/archive/2010/01/15/1648809.html 1. 将jrtplib-3.7.1和jthread-1.2.1解压到/prj/share/source下。 2. 安装jthread. 在终端中输入: ./configure –prefix=/prj/share –host=arm-mont

xyyangkun的专栏 959

JRTPLIB库在Linux平台上的编译

JRTPLIB库在Linux平台上的编译 1、jrtplib简介   RTP 是目前解决流媒体实时传输问题的最好办法,要在 Linux 平台上进行实时传送编程,可以考虑使用一些开放源代码的 RTP 库,如 LIBRTP、JRTPLIB 等。JRTPLIB 是一个面向对象的 RTP 库,它完全遵循 RFC1889设计,在很多场合下是一个非常不错的选择。JRTPLIB 是一个用 C++ 语言实现的

juckciy的专栏 969

基于GPL329XXB IPC开发Issue 1 -- ARM 无线WIFI ping不通PC原因

最近在调试IPC,涉及到网络方面的编程,先在板子上面架设USB WIFI,然后连接Router,ARM板可以正常自动获取ip addr,如下所示: lo        Link encap:Local Loopback             inet addr:127.0.0.1  Mask:255.0.0.0           UP LOOPBACK RUNNING  MTU:1643

qinxiongxu的专栏 1942
上一篇: JRTPLIB在arm和pc间收不到数据包的问题
下一篇: linux jpeg视频传输四部曲之一
floatdu
博客等级 码龄19年 8粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值