linux环境下编译pjsip库

本文详细介绍如何下载、编译PJSIP库,并解决编译过程中的常见错误,如权限问题和缺少libasound-dev库。同时提供在不同Linux发行版下的解决方案,包括Ubuntu和CentOS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 下载pjsip库并解压

    $ tar -jxvf pjproject-2.9.tar.bz2

     

  2. 编译

    $ cd pjproject-2.9
    $ ./configure
    $ make dep
    $ make

    编译成功后生成静态库:

    pjlib/lib  
    pjlib-util/lib
    pjmedia/lib
    pjnath/lib
    pjsip/lib
    third_party/lib 

    如果报错sudo: ./configure: command not found,赋权即可:

    chmod 777 configure

    or

    chmod 755 ./configure
  3. 如果make过程中报错:alsa/asoundlib.h: No such file or directory,或者拨号时报以下错误

    12:39:55.753 os_core_unix.c !pjlib 2.1 for POSIX initialized 
    12:39:55.754 sip_endpoint.c .Creating endpoint instance... 
    12:39:55.754 pjlib .select() I/O Queue created (0x93f1a80) 
    12:39:55.754 sip_endpoint.c .Module "mod-msg-print" registered 
    12:39:55.754 sip_transport. .Transport manager created. 
    12:39:55.754 pjsua_core.c .PJSUA state changed: NULL --> CREATED 
    12:39:55.769 pjsua_core.c .pjsua version 2.1 for Linux-3.0.0.17/i686/glibc-2.13 initialized (-1, -2) 
    12:39:55.770 pjsua_aud.c .Error retrieving default audio device parameters: Invalid audio device (PJMEDIA_EAUD_INVDEV) [status=420004] Exception: Object: Lib, operation=set_current_sound_devices(), error=Invalid audio device (PJMEDIA_EAUD_INVDEV)

    这是因为没有安装libasound-dev库,安装即可

  4. apt-get install libasound2-dev

    而在centos系统下yum install找不到libasound-dev,这时需要下面指令安装。

    yum install alsa-lib-devel

    安装后reboot系统,重新编译即可。

  5. 安装:若想将库安装到系统中,执行

    make install
    安装后pjlib生成的库文件位于/usr/local/lib
  6.  为了减少链接多个库文件,pjsip工程会生成一个配置文件libpjproject.pc
    位于路径/usr/local/lib/pkgconfig/libpjproject.pc下

    # 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.9
    Libs: -L${libdir} -lpjsua2-x86_64-unknown-linux-gnu -lstdc++ -lpjsua-x86_64-unknown-linux-gnu -lpjsip-ua-x86_64-unknown-linux-gnu -lpjsip-simple-x86_64-unknown-linux-gnu -lpjsip-x86_64-unknown-linux-gnu -lpjmedia-codec-x86_64-unknown-linux-gnu -lpjmedia-x86_64-unknown-linux-gnu -lpjmedia-videodev-x86_64-unknown-linux-gnu -lpjmedia-audiodev-x86_64-unknown-linux-gnu -lpjmedia-x86_64-unknown-linux-gnu -lpjnath-x86_64-unknown-linux-gnu -lpjlib-util-x86_64-unknown-linux-gnu  -lsrtp-x86_64-unknown-linux-gnu -lresample-x86_64-unknown-linux-gnu -lgsmcodec-x86_64-unknown-linux-gnu -lspeex-x86_64-unknown-linux-gnu -lilbccodec-x86_64-unknown-linux-gnu -lg7221codec-x86_64-unknown-linux-gnu -lyuv-x86_64-unknown-linux-gnu -lwebrtc-x86_64-unknown-linux-gnu  -lpj-x86_64-unknown-linux-gnu -lssl -lcrypto -luuid -lm -lrt -lpthread  -lasound  
    Cflags: -I${includedir} -g -O2 -I/usr/local/include -DPJ_AUTOCONF=1 -O2 -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值