• ubuntu 下jrtplib编译


      我本来想用最新的 jrtplib-3.9.1和jthread-1.3.1,可是最新的那两个版本中都是用cmake进行配置的,我搞了好久,查了好多资料也没有解决交叉编译的问题,无奈,只能选用比较老的两个版本,我用的是jrtplib-3.7.1和jthread-1.2.1。想编译jrtplib-3.7.1,必须先编译jthread-1.2.1。

      下面是详细编译的步骤

      pc上编译:

      进入jthread-1.2.1中

      第一步:

      ./configure --prefix=/arm/jrtplib/share_jrtplib_jthread

      第二步:

      make

      第三步:

      make install

      进入jrtplib

      第一步:

      ./configure --with-jthread-includes=/arm/jrtplib/share_jrtplib_jthread/include/jthread/ LDFLAGS=-L/arm/jrtplib/share_jrtplib_jthread/lib/ --prefix=/arm/jrtplib/share_jrtplib_jthread

      第二步:

      make

      make 的时候出错:

      编译jrtplib的时候出现如下错误:
      rtperrors.cpp:206:1: warning: deprecated conversion from string constant to 'char*'
      rtperrors.cpp:206:1: warning: deprecated conversion from string constant to 'char*'
      rtperrors.cpp:206:1: warning: deprecated conversion from string constant to 'char*'
      rtperrors.cpp:206:1: warning: deprecated conversion from string constant to 'char*'
      rtperrors.cpp: In function 'std::string RTPGetErrorString(int)':
      rtperrors.cpp:225:36: error: 'snprintf' was not declared in this scope
      make[1]: *** [rtperrors.lo] 错误 1
      make[1]:正在离开目录 `/root/vedio/JRTPLib/src-x86/jrtplib-3.7.1/src'
      make: *** [all-recursive] 错误 1
      修改方法:
      修改 jrtplib-3.7.1 源文件 rtpdefines.h
      添加如下语句 :
      #include <stdio.h>
      #include <stdarg.h>
      #include <string.h>
      然后重新make

      第三步:

      make install

      --prefix= --prefix :指定编译后的 jrtplib 库安装到什么目录。

      --with-jthread-includes :指定之前安装的 jthread 库的头文件安装在什么目录下。如果不需要 jthread 的支持,这个选项可以不用。

      LDFLAGS :为编译时需要连接的动态库的路径。如果不需要 jthread 库的支持,这个选项不要。

      交叉编译:

      第一步:

      ./configure --prefix=/arm/jrtplib/share_jrtplib_jthread --host=arm-linux CC=/usr/local/arm-2007q3/bin/arm-none-linux-gnueabi-gcc CXX=/usr/local/arm-2007q3/bin/arm-none-linux-gnueabi-g++

       --prefix是安装的路径,--host是选择是个pc还是arm,后面CC和CXX是交叉编译工具的路径

      第二步:

      make

      第三步:

      make install

       编译jrtplib

      第一步:

      ./configure --with-jthread-includes=/arm/jrtplib/share_jrtplib_jthread/include/jthread/ LDFLAGS=-L/arm/jrtplib/share_jrtplib_jthread/lib/ --prefix=/arm/jrtplib/share_jrtplib_jthread --host=arm-linux CC=/usr/local/arm-2007q3/bin/arm-none-linux-gnueabi-gcc CXX=/usr/local/arm-2007q3/bin/arm-none-linux-gnueabi-g++

      第二步:

      make

      第三步:

      make install

      第一步中的相对路径自己可以做相应的修改。

      测试:

      编译完成后可以把相应的example里面的例子运行下试试(pc环境下测试的,因为开发班无法开两个终端,我又重新把上面的程序编译了下,生成pc下的可执行程序)

      我测试的是第一个例子和第第二个例子

      先运行第二个例子

      然后运行第二个程序,分别填入:6666 127.0.0.1 8000 1000

      这样你就可以看到第二个例子那边受到数据了。

  • 相关阅读:
    Assetbundle资源单一打包,以及加载方法
    VS2010 Chromium编译
    一道思考题
    Windbg源码调试
    C++ static_cast dynamic_cast reinterpret_cast const_cast转换
    条件断点设置
    FFmpeg 2.0编译配置
    error LNK2001: 无法解析的外部符号 _IID_IDirectDraw7
    Windbg常用命令
    DDraw绘图
  • 原文地址:https://www.cnblogs.com/cainiaoaixuexi/p/3937507.html
Copyright © 2020-2023  润新知