osip/exosip基础3:建立工程

来源:互联网 发布:两个矩阵对应元素相乘 编辑:程序博客网 时间:2024/05/06 13:55

建立工程,做好调试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/MakefileEXOSIPCONFIG = libeXosip2-4.1.0/Makefileall: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/ installifneq ($(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/ cleandistclean:    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/eXosip2LIB_PATH = -L../osip/libSTATIC_LIB = -Wl,-Bstatic -leXosip2 -losipparser2 -losip2SHARED_LIB = -Wl,-Bdynamic -lpthread -lresolvall: MysipMysip: main.o     g++ -o Mysip main.o $(LIB_PATH) $(STATIC_LIB) $(SHARED_LIB)main.o:main.cpp    g++ $(INCLUDE_PATH) -c main.cppclean:    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

0 0