首页 > 系统相关 >windows下编译jrtplib

windows下编译jrtplib

时间:2023-02-20 22:58:50浏览次数:47  
标签:选项 jrtplib windows 路径 选择 编译 构建 jThread

最近需要编译jrtp库,在windows下编译后发现其中cmake的弯弯道道还挺多的,故在此记录。

 

首先,我们先看一看jrtplib的官网,官网对于该库已有较为详细的介绍。

可以在官网看到,jrtplib在编译时可以选择是否使用jThread库,jThread库是一个封装的跨平台thread库,可以选择是否使用,同时这对于后续使用jrtplib进行开发会有一定的影响。比如,如果使用jThread库,对于开发者而言就可以不用管理RTCP,jrtplib会在后台轮询处理;但是如果不使用jThread库,对于RTCP数据,开发者就得自己处理。

笔者这儿选择了基于jThread库。

下面开始按流程构建编译jrtplib。

1. 下载

从官网上下载jrtplib和jThread的源码并解压。

2. 构建jThread库

因为jrtplib我们选择基于jThread,所以我们要先构建编译jThread库。

打开cmake-gui。

在Where is the source code: 栏 选择刚才下载的jThread源码文件夹

在Where to build the binaries: 栏 选择构建的二进制文件存放位置,笔者在这儿直接选择在源码目录下创建一个build文件夹

点击“Add Entry”增加CMAKE_INSTALL_PREFIX选项,自定义库的安装位置,这样在项目编译后对应的头文件和库文件都会存放在该指定目录下。笔者这种选择安装位置是jthread_install文件夹。

 

 然后点击Configure选择构建选项

 

 构建工具选择自己电脑里安装的VS版本,笔者这儿是VS2019。下面的平台选项,因为笔者需要64位的库,所以也就默认empty了。

点击Finish,等待配置完成。

 

 这个时候可以直接点击Generate构建项目,也可以修改上面的构建选项自定义。这儿默认构建静态库(推荐构建静态库)

在构建成功后,点击Open Project打开项目工程。

 

 选择INSTALL项目进行生成,记得生成Debug版本和Release版本。

生成解决方案后就可以在前面自定义的库安装路径中找到生成的库文件了。当然,如果没有增加CMAKE_INSTALL_PREFIX选项,也可以在构建目录下(Where to build the binaries)找到生成的库文件。

3. 构建jrtplib

跟jThread库一样,选择源码路径,选择构建路径,添加CMAKE_INSTALL_PREFIX选项,点击Configure,然后你就可以得到如下的编译选项。

 

 这儿有一些重要的选项需要注意。

3.1 jThread库依赖

JTHREAD_ENABLED选项,如果选择基于jThread要勾选,同时下面的JTHREAD_XXX 四个选项都有填上相关路径。

 

JThread_DIRINCLUDE_DIR是jThread头文件路径,因为项目中是这种格式引用头文件的<jthread/jthread.h>,所以我们需要包含倒jthread文件夹的上一级文件夹。

JThread_DIRLIB_DEBUG是Debug版本库文件路径

JThread_DIRLIB_RELEASE是Release版本库文件路径

JThread_DIR,根据jrtplib的作者的指导,这儿选择的是JThreadConfig.cmake文件所在的路径

3.2 静态库选择

JRTPLIB_COMPILE_STATIC选项,笔者这儿是默认勾选的,同时笔者也是希望构建静态库,因为静态库可以减少很多麻烦,比如当项目移动时,包含静态库的工程总是比包含动态库的工程少一些库文件路径问题。

3.3 构建选项值的问题

构建选项的value中,如果有路径,一律使用'/',而不能使用'\',否则在构建时会出现路径问题。

 

完成自定义后,笔者的构建选项如下所示。(ADDITIONAL_XXX的作用在此处看不出来,因为jThread的各种路径都在下面指定了)

 

 点击Generate,在构建成功后点击Open Project打开工程,右键选择INSTALL项目,在仅用于项目中选择仅生成INSTALL。

 

 如果没有选择仅生成,其他的项目也会生成,但是其他的项目是example,依赖于jsrtplib,会报错。

4. 使用

库文件都生成了,接下来就是拷贝头文件和库文件到项目中使用了,这儿可以直接参考jrtplib给出的example

标签:选项,jrtplib,windows,路径,选择,编译,构建,jThread
From: https://www.cnblogs.com/unrealCat/p/17139302.html

相关文章

  • 编译型还是解释型语言区分?开发语言类型的简单区分
    1.编译型语言和解释型语言1.1编译型语言定义:在程序运行之前,通过编译器将源程序编译成机器码(可运行的二进制代码),以后执行这个程序时,就不用再进行编译了。优点......
  • Windows提权的几个方向(持续更新中)
    1、利用Windows系统漏洞匹配可提权漏洞编号,系统是否缺失该补丁。1、人工查用systeminfo命令或wmicqfegetHotFixID命令获取已经打了的补丁编号。2、利用Metasploit......
  • 用百分比显示Windows内存使用率
    在之前的篇幅​​简单聊聊AzureVM的内存指标​​里已经提过了​,Windows并没提供内置的方式来让你直接通过百分比的形式展示内存使用率,这样对于告警的设置来说就不太灵活了......
  • 如何更好的使用 Windows
    如何更好的使用WindowsMicrosoft辅助功能和工具键盘快捷方式,常用ctrl+C复制ctrl+V粘贴ctrl+X剪切ctrl+Z撤销ctrl+Y回退alt+tab切换alt+f4关闭Win......
  • ASR编译说明
    @目录简介下载DS5破解获取许可证SVNPerlGNUMakeMicrosoftVisualC++Redistributable微软运行库合集验证验证DS5验证Perl验证gnumake编译简介ASR编译环境搭建步骤详细......
  • Windows打开代理快捷方式
    最近使用电脑需要频繁打开关闭网络代理(全局代理会导致一些网站打不开),在想有没有快捷方式,一搜果然有,看来有跟我一样的使用习惯的人。传统切换代理开关,步骤如下:设置=>网......
  • VPP 2110版本源码编译安装
    原文地址:https://www.cnblogs.com/liqinglucky/p/vpp.html一介绍官方文档:VPP/WhatisVPP?-fd.ioVPP平台是一个提供了交换机/路由器(switch/router)开箱即用(out-of......
  • nginx镜像编译安装nginx_accept_language_module
    本文重点内容:编译生成nginx_accept_language_module镜像容器启动后,dockerlogs没日志输出多阶段编译,优化镜像大小​Dockerfile内容如下:FROMdaocloud.io/library/centos:7a......
  • mingw32编译libssh2 转载的文章
    由于实习工作中要用到基于sftp协议开发一个网络程序,同时要实现运行在Windows平台上,找来找去就这个libssh2库好用,在网络上算是有那么一点点的文档可以看。这个库还不是现成......
  • WindowS 平台下单实例Oracle 11.2.0.1 升级Oracle 11.2.0.4
     由于业务环境需要,只有11.2.0.4可以直接升级19C,所以现需先升级到11.2.0.4主要步骤如下:备份数据,RMAN全备,必要的话建议拷贝一份HOME目录;下载升级包11.2.0.4关闭数据库,包括监......