Linux 编译jrtplib-3.9.1 jthread-1.3.1

Linux 编译jrtplib-3.9.1 jthread-1.3.1

一:下载三个文件

1.jrtplib-3.9.1:http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib

2.jthread-1.3.1:http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jthread

3.cmake-2.8.12.2:http://www.cmake.org/

截止今日全是最新版本

二:放到Linux任意目录下分别解压三个文件

三:因为我的linux下没有cmake所以要安装cmake,可以用cmake -version 命令查看自己系统中有无及其版本

      进入cmake目录:分别输入命令

      ./bootstrap          

       make

      make install

     make -version查看安装是否成功

四:jthread和jrtplib是配合使用的,jthread负责线程调用函数和mutex,所以要先编译jthread,因为编译jrtplib时会用到jthread的编译好的头文件

    1.进入jthread目录分别执行下列命令

      cmake  CMakeLists.txt   生成makefile

      make

      make install

   2.进入jrtplib目录,执行命令同上


五:查看编译完的文件

   1.  /usr/local/lib 目录下放置着编译的jrtplib和jthread的库,主要的是libjrtp.a  libjthread.a静态库, libjrtp.so.3.9.1 libjthread.so.1.3.1动态库,libjrtp.so libjthread.so 链接

  2. /usr/local/incude  多了两个文件夹:jrtplib3  jthread

六:编译jrtplib解压文件中的example下的example1.cpp程序

     g++ example1.cpp  -o example1_pc

     出现错误:rtpsession.h 没有那个文件或目录........................

     原因:Linux系统默认查找的头文件在usr/include下面,我们编译后的头文件在usr/local/include下面,所以找不到是情有可源的

    解决1:直接将usr/local/include下的两个文件夹复制到/usr/include目录下

    解决2:或者做个软连接:

                 ln -s /usr/local/include/jrtplib3   /usr/include/jrtplib  

                 ln -s /usr/local/include/jthread   /usr/include/jthread

   通过1/2这两种其实还是解决不了的,因为默认需找的是/usr/include文件夹下的内容,现在相当于放在          了/usr/include/jrtplib目录下了,所以要讲源程序example1.cpp中的“”头文件加上jrtplib/     eg:"jrtplib/rtpsession.h"

  当有调用jthread头文件的地方要添加“jthread/”

  重新执行命令:g++ example1.cpp  -o example1_pc

  出现错误:undefined reference to jrtplib::RTPGetErrorString(int) ...........................................

  解决:这是因为编译的时候链接库没有找到所致

            所以编译时添加上链接库:g++ example1.cpp -l jrtp -o example1_pc

            编译通过

七:运行可执行程序

      ./example1_pc

       出现错误:error while loading shared libraries :libjrtp.so.3.9.1:cannot open shared object file :no such file

       解决:这是因为没有找到动态链接库所致,因为动态链接库还在/usr/local/lib目录下呢,跟include是相同原理

       直接将四个文件 libjrtp.so.3.9.1 libjthread.so.1.3.1libjrtp.so libjthread.so复制到/usr/lib下就OK了

     重新执行:./example1_pc

     出现;Enter local portbase

     OK大功告成。         

    






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值