1、安装包:jrtplib-3.7.1.tar.gz jthread-1.2.1.tar.gz
2、步骤:
1)分别解压两个安装包
注意在 src/rtpconfig_unix.h 中注销掉大端模式
//#define RTP_BIG_ENDIAN // comment this if the target is a little endian system
编译中会出现一些函数没定义的是没加头文件,加上相应头文件就ok了,我这就不多说了
for X86平台
步骤:
进入jthread-1.2.1使用./configure --prefix=/opt/EmbedSky/rtpX86 命令配置
make
sudo make install
再 进入 jrtplib-3.7.1目录 使用. /configure --prefix=/opt/EmbedSky/rtpX86 --with-jthread-include=/opt/EmbedSky/rtpX86 /include/jthread LDFLAGS=-L/opt/EmbedSky/rtpX86 /lib
make
sudo make install
for arm平台
步骤:
一般的板子
由于
内核和文件系统的原因都没有
loginname
,所以
在 rtpsession.cpp中:
if (!gotlogin) { char *logname = getenv("LOGNAME");
if (logname == 0) return ERR_RTP_SESSION_CANTGETLOGINNAME;// 这里 return 了一个 error strncpy((char *)buffer,logname,*bufferlength); }
所以我强制将 logname 的值设为 root ,就 ok 了。
进入jthread-1.2.1使用./configure --prefix=/opt/EmbedSky/rtparm -host=arm-linux CC=arm-linux-gcc CXX=arm-linux-g++ 命令配置
make
sudo make install
再 进入 jrtplib-3.7.1目录 使用. /configure --prefix=/opt/EmbedSky/rtparm -host=arm-linux CC=arm-linux-gcc CXX=arm-linux-g++ --with-jthread-include=/opt/EmbedSky/rtparm /include/jthread LDFLAGS=-L/opt/EmbedSky/rtparm /lib
make
sudo make install
3)测试
libjrtp目录中有个examples目录,里面有5个例子,我们来编译一个X86平台的example1试试
使用命令 g++ example1.cpp -I /opt/EmbedSky/rtpX86/include/jthread -I /opt/EmbedSky/rtpX86/include/jrtplib3 -L /opt/EmbedSky/rtpX86/lib -ljrtp编译
./a.out
出现
Enter local portbase:
测试成功!