[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]
1、将下载好的jthread和jrtplib文件解压到“D:\devBuild”目录中(如果你之前解压过,最好将就的文件先删除,然后再按照本文实践);
2、双击桌面上的“CMake(cmake-gui)”启动CMake GUI程序。在CMake主界面中,点击“Browse Source…”按钮,然后选择“jthread库”的源码位置(即jthread库中CMakeList.txt文件所在目录,并非src目录);
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/b6f0f0f97fbd4c7c310e63f2b8bad341027d3010.jpg)
3、拷贝源码路径,并粘贴到“编译路径”中,然后追加上“/vs2017build”,即在jthread源码目录下新建一个“vs2017build目录”,用于保存生成的vs2017工程文件。目录设置完毕后,点击CMake界面中的“Configure”按钮,执行配置任务;
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/23fd63c5cf672b5fc5fb5a253314f4d0b4032710.jpg)
4、在弹出的“创建目录对话框”中,点击“Yes”按钮,确定创建目录;
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/b442d6d246fe474eda3e6c0cb0ef354f51b81f10.jpg)
5、在弹出的“工程配置窗口”中,选择生成器为“Visual Studio 15 2017”,然后点击“Finish”按钮完成配置;
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/560be432939c2cf7fc0f83aa452c5b1b1fde1210.jpg)
6、等待CMake完成项目配置后,将配置列表中“CMAKE_INSTALL_PREFIX”值设置为“D:\3rdparty”,去掉 “JTHREAD_COMPILE_STATIC”右方的勾(创建动态库),勾选“JTHREAD_WIN32_CRITICALSECTION”(使用Win32的临界区对象)。设置完毕后,点击“Generate”按钮生成VS2017工程文件;
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/cfadcdd96975f2c4c32406f08f0148fe1f420610.jpg)
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/5c2a1ad149299a8801aeb75667eeadbcbf2f7f10.jpg)
7、项目配置完毕后,可以在CMake日志列表中见到配置生成完毕的信息。如果不需要生成其他的CMake项目,可以直接关闭CMake-GUI;
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/bf6e59704618dfdaa486643589214f5792567710.jpg)
8、进入jthread工程生成目录,双击jthread.sln使用VS2017打开。jthread解决方案打开之后,生成解决方案列表中的“ALL_BUILD项目”(编译jthread库),然后单独生成“INSTALL项目”(安装生成的jthread库)。Debug版生成完毕后,将解决方案配置设置为“Release”,然后再执行一篇上述过程,生成Release版的jthread动态库;
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/92174dbbf82064fbdeb66e928e6104a354e96f10.jpg)
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/e1390a31dfb6326c02dbc67c89532f6322856010.jpg)
9、重新打开(返回)CMake GUI中,将源码目录设置为jrtplib源码目录,生成目录设置为源码目录下的vs2017build目录。然后点击“Configure”按钮配置项目;
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/22c4fe36e29147e86e5d66c1b603bbea3f865810.jpg)
10、jrtplib项目配置完毕后,可以见到很多配置选项。根据选项名称,大致可以猜出它们的用途。这里,还是跟jthread配置一样,将安装目录前缀设置为“D:\3rdparty”,生成动态库,启用jthread依赖并指定jthread库的相关目录。设置完毕后,点击“Generate”按钮生成jrtplib项目;
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/38332303bbea3e8652f53ef05cd4483105eb5510.jpg)
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/05aae8a75f0f822b1e534381c018512c8df14d10.jpg)
11、生成完毕后,发现jrtplib还需要依赖libsrtp库(支持安全传输的RTP库)。目前用不上安全传输功能,直接忽略(以后用到再介绍);
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/4a594f2c8cf1d8a7568e173746e34b2c57ee4710.jpg)
12、进入jrtplib项目生成目录,双击打开jrtplib.sln。然后分别编译出Debug版和Release版的jrtplib动态库(过程与jthread一样);
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/7a3e980e7c75e5f48548b1beb1ceaad7736bbc10.jpg)
13、打开“D:\3rdparty\lib”目录,可以见到所有生成的jthread和jrtplib库文件;
![[jrtplib(3)] 编译jthread和jrtplib动态库[TZZ]](https://exp-picture.cdn.bcebos.com/ab966c6b0ce265e7b4b23bcb9f23beb9773eb710.jpg)
14、CMake GUI配置和生成jthread库和jrtplib库的过程就介绍完毕了。总的来说,使用CMake GUI可以更直观的修改CMake项目的配置参数,用起来非常方便。Enjoy!