linux环境下编译 jrtplib 和 jthread

1.       下载开发包解压。分别下载jrtplib-3.7.1.tar.gz和jthread-1.2.1.tar.gz。下载地址为:

http://research.edm.uhasselt.be/jori/jrtplib/jrtplib-3.7.1.tar.gz和

http://research.edm.uhasselt.be/jori/jthread/jthread-1.2.1.tar.gz

2.       将源文件放到如下任意目录中,这里假设放到主目录下:/home/jrtplib/。分别解压#tar -xzvf xxx,xxx为文件名。解压后出现两个目录,一个是jrtplib-3.7.1,一个是jthread-1.2.1。然后进行安装,先安装jthread,再安装jrtplib,这里边保证安装的顺序为先安装jthread,在安装 jrtplib

3.       jthread安装:进入jthead解压目录,首先,运行#./configure配置环境,生成makefile文件,如果出现permission denied,说明我们需要给文件configure执行的权限,运行#chmod a+x configure即可。配置好环境后,运行#make。make成功后,再运行#make install。安装成功以后会在/urs/local/include目录下多出一个文件夹jthread。

4.       jrtplib安装同上,全部安装好以后会在/urs/local/include目录下多出两个文件夹jrtplib3(可能由于版本不同,生成的文件夹名字略有不同,比如叫jrtplib-3.7.1)和jthead。复制jthead下所有文件(都是后缀为.h的头文件)到jrtplib文件夹下,目的是为了让所有头文件在一个目录下方便调用。

5.       装好以后系统环境如下,静态动态库安装到了/usr/local/lib目录下,包括libjrtplib-3.7.1.so和libjthread-1.2.1.so等。头文件在/usr/local/include/jrtplib-3.7.1目录下。

6.       在jrtplib源代码目录里有示例程序,在目录example下,试验一下编译example1.cpp,使用静态库libjrtp.a链接,编译链接语句如下(注意用g++而不是gcc编译,因为是链接阶段需要g++):
g++ -o example1 example1.cpp -I /usr/local/include/jrtplib/ -ljrtp
即生成应用程序exmaple1,注意,-I(大写的i)参数中路径为jrtplib头文件目录,根据实际情况修改。如果出现错误,说明动态链接库路径不对,有以下两种方法可以对动态链接库的路径进行设置:

a、修改动态链接库宏LD_LIBRARY_PATH。LD_LIBRARY_PATH 这个环境变量是大家最为熟悉的,它告诉loader:在哪些目录中可以找到共享库。可以设置多个搜索目录,这些目录之间用冒号分隔开。export LD_LIBRARY_PATH=/usr/local/lib,然后再运行编译,即可通过。这种方法只是暂时修改路径,在重启shell后会失效。或者是配置在环境变量文件/etc/profile中,重启或者source /etc/profile 生效,source 只在本控制台生效。

b、永久生效的方法为修改动态链接库配置文件/etc/ld.so.conf,或者在/etc/ld.so.conf.d里创建一个新文件,并把需要的目录加到这个文件里。具体方法如下:(说明:这种修改动态链接库配置的方式需要使用超级用户权限,不然没有对共享库配置文件的写权限)

#cd /etc/ld.so.conf.d

#vim jrtplib在编辑环境下加入/usr/local/lib,保存退出。

#ldconfig 重新加载动态链接库。

然后再执行编译链接,成功生成example1文件。

然后运行./example1。成功。

你可能感兴趣的:(linux,shell,gcc,Path,library)