jrtplib 3.9.1 arm 交叉编译

来源:互联网 发布:化妆水推荐 知乎 编辑:程序博客网 时间:2024/05/21 00:47

  目前jrtplib的版本已经更新到了3.9.1,现在用的自动编译脚本已经被作者改成了cmake。由于最近需要在armv5的板子下开发视频应用,因此准备把该库移植过去。转载请注明作者:jwybobo2007。移植前先在baidu和google上搜索了下,没有找到有关jrtplib 3.9.1的交叉编译方法,能找到的就是3.7.1版本的编译方式,那时候直接是用的configure,make来编译的。既然没找到,那就只能自己研究一下,然后动手编译(现在的人真的是很依赖搜索引擎了,就像我,凡事都先搜索,找不到答案时,才自己去动脑研究,真是悲剧啊),下面介绍一下几个步骤。

  1.下载该库以及jthread后,分别解压,在解压目录中能看到一个CMakeList.txt的文件

  2.修改两个解压目录下的CMakeList.txt 

#告知当前使用的是交叉编译方式SET(CMAKE_SYSTEM_NAME Linux)#设置c编译器SET(CMAKE_C_COMPILER "arm-none-linux-gnueabi-gcc")#设置c++编译器SET(CMAKE_CXX_COMPILER "arm-none-linux-gnueabi-g++")
  3.切换目录至jthread解压目录,执行cmake CMakeList.txt

  4.make, make install  此时jthread库安装完毕,默认安装到/usr/local

接下来编译jrtplib

  5.切换目录至jrtplib解压目录,执行cmake CMakeList.txt

  6.执行完后,根据大小端情况先修改src文件夹下的rtpconfig.h

  默认情况下会定义大端宏:

#define RTP_BIG_ENDIAN

  如果用的是小端序,把这个宏屏蔽掉

  7.由于板子上的linux操作系统可以在没有用户名的情况下登录,所以rtpsession.cpp中的CreateCNAME可能报Can't retrieve login name的错误,因此需要修改几句代码:

if (!gotlogin){char *logname = getenv("LOGNAME");if (logname == 0){strncpy((char*)buffer, "root", *bufferlength);}elsestrncpy((char *)buffer,logname,*bufferlength);}

  8.make, make install

  执行成功后就OK了,现在可以写代码测试了

原创粉丝点击