在 linux 中构建 pjsip 时出错

error while building pjsip in linux

我在构建 pjsip 时出现以下错误,如 this link 中所述。

当我 运行 make 命令时:

In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/errno.h:28:0,      
                 from ../include/pj/compat/socket.h:131,  
                 from ../src/pj/ioqueue_select.c:38:    
../src/pj/ioqueue_common_abs.c: In function ‘pj_ioqueue_recv’:  
../include/pj/compat/os_auto.h:149:31: error: ‘EAGAIN’ undeclared (first use in this function)   
 #define PJ_BLOCKING_ERROR_VAL EAGAIN
                               ^  

编辑:

  1. OS 名称:Ubuntu 16.04 LTS && 64 位
  2. 构建命令:

    cd pjproject-2.7.2/
    chmod 777 configure
    chmod 777 aconfigure
    ./configure  
    make dep  
    make  
    

并从this link

下载了源代码

Ubuntu 16.04 - amd64

git clone https://github.com/svn2github/pjsip.git ... 或 pjproject-2.7.2.tar.bz2 :两者都可以在这里构建,gcc 版本 4.8 → sudo apt install g++-4.8

构建示例,参考。 https://trac.pjsip.org/repos/wiki/Getting-Started/Autoconf

export CC=gcc-4.8 CXX=g++-4.8 && ./configure --enable-shared --disable-static --enable-memalign-hack
make dep && make

有趣的是,pjsip 可以在基于 rpm 的 OS 上使用 gcc、g++ v. 7.3 构建。但是话又说回来,Ubuntu gcc 有一个非常不同的补丁。