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大功告成。         

    






你可能感兴趣的:(linux,配置,编译,jrtplib-3.9.1,jthread-1.3.1)