Linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/ld.so.conf 或者 使用-

尝试使用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的头文件去哪里找。参见 关于头文件说明

#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

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

世上并没有用来鼓励工作努力的赏赐,所有的赏赐都只是被用来奖励工作成果的。

Linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/ld.so.conf 或者 使用-

相关文章:

你感兴趣的文章:

标签云: