最近出于兴趣,想学习下开源的sip协议栈,然找了不少文章,依然没有找到想要的答案。下面就pjsip的编译及使用进行说明:linux
pjsip编译
从pjsip官网()下载最新的源码,将其解压到linux下。 c++
1) cd pjsip-xx
2) ./configure 此处采用默认配置,若想进行一些配置,请查阅官网说明,此处主要是让一个新手可以快速上手,故不作深刻分析。
3) 确认无误后执行 make dep&&make&&make install 4) 若无误则表示安装成功,pjlib生成的库文件位于/usr/local/lib,为了减小连接多个库文件,pjsip工程会生成一个配置文件/usr/local/lib/pkgconfig/libpjproject.pc。后续将会用到,其内容以下:web
# Package Information for pkg-config
prefix=/usr/local
exec_prefix=${prefix}
libdir=/usr/local/lib
includedir=/usr/local/include
Name: libpjproject
Description: Multimedia communication library
URL: http://www.pjsip.org
Version: 2.5
Libs: -L${libdir} -lpjsua2-i686-pc-linux-gnu -lstdc++ -lpjsua-i686-pc-linux-gnu -lpjsip-ua-i686-pc-linux-gnu -lpjsip-simple-i686-pc-linux-gnu -lpjsip-i686-pc-linux-gnu -lpjmedia-codec-i686-pc-linux-gnu -lpjmedia-i686-pc-linux-gnu -lpjmedia-videodev-i686-pc-linux-gnu -lpjmedia-audiodev-i686-pc-linux-gnu -lpjmedia-i686-pc-linux-gnu -lpjnath-i686-pc-linux-gnu -lpjlib-util-i686-pc-linux-gnu -lsrtp-i686-pc-linux-gnu -lresample-i686-pc-linux-gnu -lgsmcodec-i686-pc-linux-gnu -lspeex-i686-pc-linux-gnu -lilbccodec-i686-pc-linux-gnu -lg7221codec-i686-pc-linux-gnu -lpj-i686-pc-linux-gnu -lssl -lcrypto -lm -lrt -lpthread -lasound
Cflags: -I${includedir} -I/usr/local/include -DPJ_AUTOCONF=1 -O2 -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1
#include <pjlib.h>
#include <pjlib-util.h>
#include <pjmedia.h>
#include <pjmedia-codec.h>
#include <pjsip.h>
#include <pjsip_simple.h>
#include <pjsip_ua.h>
#include <pjsua-lib/pjsua.h>
int main()
{
printf("test lib ok \n");
return 0;
}
2) makefileapp
# If your application is in a file named myapp.cpp or myapp.c
# this is the line you will need to build the binary.
all: myapp
myapp: myapp.cpp
$(CC) -o $@ $< `pkg-config --cflags --libs libpjproject`
clean:
rm -f myapp.o myapp
3) 将/usr/local/lib/pkgconfig/libpjproject.pc拷贝至你的工程,即代码路径下
4) 编译便可。ide
2016/7/30svg