osip/exosip基础3:建立工程

原创 2016年08月30日 01:23:58

建立工程,做好调试osip的前期准备。
工程树结构如下:

cjd@cjd:~/sip$ tree -L 2
.
├── libeXosip2-4.1.0
│   ├── aclocal.m4
│   ├── AUTHORS
│   ├── autogen.sh
│   ├── ChangeLog
│   ├── configure
│   ├── configure.ac
│   ├── COPYING
│   ├── exosip-config.h.in
│   ├── help
│   ├── include
│   ├── INSTALL
│   ├── LICENSE.OpenSSL
│   ├── Makefile.am
│   ├── Makefile.in
│   ├── NEWS
│   ├── platform
│   ├── README
│   ├── scripts
│   ├── src
│   └── tools
├── libosip2-4.1.0
│   ├── aclocal.m4
│   ├── AUTHORS
│   ├── autogen.sh
│   ├── BUGS
│   ├── ChangeLog
│   ├── configure
│   ├── configure.ac
│   ├── COPYING
│   ├── FEATURES
│   ├── help
│   ├── HISTORY
│   ├── include
│   ├── INSTALL
│   ├── libosip2.pc.in
│   ├── Makefile.am
│   ├── Makefile.in
│   ├── NEWS
│   ├── osip-config.h.in
│   ├── platform
│   ├── README
│   ├── scripts
│   ├── src
│   └── TODO
├── makefile
├── osip
│   ├── bin
│   ├── include
│   ├── lib
│   └── share
└── src
    ├── main.cpp
    └── makefile

sip/makefile如下:
增加变量OSIPCONFIG为了判断是否需要去配置osip库,不然每次编译都去配置,比较耗时。

OSIPCONFIG = libosip2-4.1.0/Makefile
EXOSIPCONFIG = libeXosip2-4.1.0/Makefile

all:
ifneq ($(OSIPCONFIG), $(wildcard $(OSIPCONFIG)))
    cd libosip2-4.1.0/ && ./configure --prefix=/home/cjd/sip/osip/
endif   
    make -C libosip2-4.1.0/ && make -C libosip2-4.1.0/ install

ifneq ($(EXOSIPCONFIG), $(wildcard $(EXOSIPCONFIG)))
    cd libeXosip2-4.1.0/ && ./configure --prefix=/home/cjd/sip/osip/
endif   
    make -C libeXosip2-4.1.0/ && make -C libeXosip2-4.1.0/ install

    make -C src/


clean:
    make -C src/ clean

distclean:
    make -C libosip2-4.1.0/ distclean
    make -C libeXosip2-4.1.0/ distclean

sip/src/makefile如下

INCLUDE_PATH = -I../osip/include\
               -I../osip/include/osip2\
               -I../osip/include/osipparser2\
               -I../osip/include/eXosip2

LIB_PATH = -L../osip/lib
STATIC_LIB = -Wl,-Bstatic -leXosip2 -losipparser2 -losip2
SHARED_LIB = -Wl,-Bdynamic -lpthread -lresolv

all: Mysip

Mysip: main.o 
    g++ -o Mysip main.o $(LIB_PATH) $(STATIC_LIB) $(SHARED_LIB)

main.o:main.cpp
    g++ $(INCLUDE_PATH) -c main.cpp

clean:
    rm -r main.o Mysip

main.cpp示例

#include <iostream>
using namespace std;

#include "eXosip.h"

struct eXosip_t *context_eXosip;

int main()
{
    int lRet;
    context_eXosip = eXosip_malloc ();
    if (eXosip_init (context_eXosip))
    {
        cout << "eXosip_init failed" << endl;
        return 0;
    }
    return 0;
}

问题:
1、makefile中指定头文件的目录,应该每个目录前加-I,
2、判断文件是否存在,用这种方法还是挺简洁的,
ifneq ($(OSIPCONFIG), $(wildcard $(OSIPCONFIG)))
并且条件语句前无需输入tab。
3、链接时指定静态链接-Wl,-Bstatic,指定动态链接-Wl,-Bdynamic

版权声明:本文为博主原创文章,未经博主允许不得转载。

Visual Studio 2010下编译osip及eXosip并搭建开发环境的方法

第一步,下载: 到http://download.savannah.gnu.org/releases/osip/libosip2-3.6.0.tar.gz下载最新的osip库并解压。 到http:...

如何打开osip/eXosip库的trace log 调试信息

一、在工程的Makefile增加-DENABLE_TRACE属性如:二、在代码中初始化eXosip_init()之前输入:TRACE_ENABLE_LEVEL();TRACE_INITIALIZE()...

Visual Studio 2010下编译osip及eXosip并搭建开发环境的方法

Visual Studio 2010下编译osip及eXosip并搭建开发环境的方法 2014-08-30 16:06 3105人阅读 评论(0) 收藏 举报 分类: SIP(2) ...
  • lly_117
  • lly_117
  • 2017年06月29日 17:13
  • 74

Xcode环境下osip,eXosip, openssl的静态库编译方法(编译出来给IOS使用)

1.osip2和eXosip2的编译方法: 首先打开终端,进入osip2或者eXoisp的根目录,然后进行详细配置以生成makefile。 具体的参数,可以通过$ ./configure --he...

【GBT28181开发:SIP协议实践】之Windows下编译eXosip、osip

今天开始了SIP开源库的学习,我选择了osip和eXosip,但是这两个库的编译使用有些麻烦,源码下来之后编译会出现很多问题,网上也没有找到完整的编译介绍,只能一步一步的找办法解决,最后终于编译成功!...

Xcode环境下osip,eXosip, openssl的静态库编译方法(编译出来给IOS使用)

ios版本需要以下静态库的支持: osip2 eXosip2 openssl。 具体编译方法: 2.4.1osip2和eXosip2的编译方法: 首先打开终端,进入osip2或...

oSIP协议栈(及eXoSIP,Ortp等)使用入门

oSIP协议栈(及eXoSIP,Ortp等)使用入门 一直没空仔细研究下oSIP,最近看到其版本已经到了3.x版本,看到网上的许多帮助说明手册都过于陈旧,且很多文档内容有点误人子弟的嫌疑~~ ...
  • gxp
  • gxp
  • 2011年10月13日 09:39
  • 680

osip、eXosip协议栈源码最新版4.1.0

  • 2016年07月14日 00:31
  • 1.11MB
  • 下载

osip和exosip

  • 2012年09月16日 13:39
  • 1.04MB
  • 下载

osip和exosip在windows下的编译静态库

1. 微软的platform sdk xp-sp2安装 : http://hi.baidu.com/xiquegg/blog/item/a9b1eea3d54d998746106478.html ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:osip/exosip基础3:建立工程
举报原因:
原因补充:

(最多只允许输入30个字)