Linux共享库位置配置(LD

字体大小: 中小 标准 ->行高大小: 标准

尝试使用libosip2,安装比较简单,按照自带的help文档里面的操作进行即可。

$>mkdir linux-build

$>cd linux-build

$>../libosip2-2.2.0/configure

$>make                          (最后2步要在管理员权限下执行)

# make install

完成之后,会在/usr/local/lib路径下生成一些lioosipXXX.so的文件,在/usr/local/include下生成关于osip的头文件。

为了测试安装是否正确,在eclipse下建了个测试项目,写了很简单的代码:

#include <sys/time.h>//不加的话,编译时会报错,可能osip依赖于time.h

#include <osip2/osip.h>

//之所以能找到/usr/local/include下关于osip的头文件,是因为eclipse默认把/usr/local/include 放到Include directories里面了。在eclipse的项目属性-->C++ General-->Path and symbols -->Include里面可以看到。如果自己写makefile文件的话,要加上-I 选项,表示程序里include的头文件去哪里找。参见 http://www.linuxidc.com/Linux/2011-05/35444.htm  关于头文件说明

#include <iostream>

using namespace std;

int main()

{

 int i;

 osip_t *osip;

 i = osip_init(&osip);

 if(i != 0)

  cout << "error" << endl;

 cout << "ok" << endl;

 return 0;

}

并且在eclipse的项目属性-->C/C++ Build-->Settings-->Tool settings-->GCC C++ Linker-->Libraries加上-lpthread -losip2的选项。

编译链接都没有问题,运行时报错:

error while loading shared libraries: libosip2.so.4: cannot open shared object file: No such file or directory

然后查到可能是因为共享库设置的问题:

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/60421.html