JRTPLIB庫在Linux平臺上的編譯

JRTPLIB庫在Linux平臺上的編譯

1、jrtplib簡介
  RTP 是目前解決流媒體實時傳輸問題的最好辦法,要在 Linux 平臺上進行實時傳送編程,可以考慮使用一些開放源代碼的 RTP 庫,如 LIBRTP、JRTPLIB 等。JRTPLIB 是一個面向對象的 RTP 庫,它完全遵循 RFC1889設計,在很多場合下是一個非常不錯的選擇。JRTPLIB 是一個用 C++ 語言實現的 RTP 庫,這個庫使用Socket 機制實現網絡通訊 因此可以運行在 Windows、Linux、FreeBSD、Solaris、Unix和VxWorks 等多種操作系統上。

  2、jrtplib的編譯
  (1) 此庫在PC機Linux上的編譯。
  以下使用Readhat 9.0,內核版本爲2.4。jrtplib庫一般與jthread庫一起使用。當jrtplib庫單獨使用時,確保主機系統上安裝了GCC編譯器。步驟如 下:進入安裝目錄configure;make;make install。安裝完把此庫的include文件放到/usr/local/include下。當與jthread庫一起使用時,先編譯 jthread,並把此庫編譯後的include文件放在/usr/local/include下,然後再編譯jrtplib庫。

  (2) jrtplib庫應用於ARM9的交叉編譯。
  jrtplib與平臺有關。jrtplib庫的交叉編譯指定的ARM編譯工具鏈是arm-linux,而ARM7的交叉編譯工具鏈是arm-elf, 因此在ARM9+Linux平臺上實現。用arm-linux-gcc編譯時,需做此庫的交叉編譯場景分析。經過多次嘗試成功編譯。具體做 法,configure前,在shell環境下輸入兩條語句export config_BUILD_CC = gcc export config_TARGET_CC = arm-linux-gcc,配置使用./configure --host = arm-linux。在rtperrors.h中添加頭文件stdio.h,否則編譯會出現相應的問題。

若干注意問題:
1. arm-linux-gcc -v 

       gcc version 3.4.1
2. 分別 進入 目錄 jthread-1.2.1 jrtplib-3.7.1
    ./configure --host=arm-linux   --prefix=home/XXX/
  make
  make install
3.  vi src/rtperrors.h 
    添加  #include <stdio.h>
4.  vi src/rtpconfig_unix.h
    註釋 //#define RTP_BIG_ENDIAN // comment this if the target is a little endian system 
5.有時候編譯會提示memcpy找不到,
   在該文件前添加
#include<stdio.h>
#include<string.h>  
就可以編譯過了!
6. vi examples/Makefile  //處理鏈接庫
INCLUDES = -I /usr/local/include/jthread -I ../src/
LDADD = ../src/.libs/libjrtp.a -L/usr/local/lib/ -ljthread -lpthread
7. cp -arf *.so 拷貝庫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章