jrtplib 3.9.1 arm 交叉编译

  目前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);
		}
		else
			strncpy((char *)buffer,logname,*bufferlength);
	}

  8.make, make install

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

你可能感兴趣的:(linux,搜索引擎,buffer,compiler,login,编译器)