RTP依赖库jrtp编译,vs版和MinGW版,支持Qt调用

本章主要记录RTP依赖库的编译,使用VS和MinGW的编译方式有所不同;
使用qt调用jrtp库时,需要根据qt的编译器类型选择不同的jrtp库。
qt调用示例:
https://blog.csdn.net/weixin_40355471/article/details/119779455

1、资源下载

使用CMAKE生成工程文件和makefile:cmake官网下载地址,选择Windows x64 ZIP版本:https://cmake.org/download/
jrtplib源码:https://research.edm.uhasselt.be/jori/page/Cs/JrtplibOld.html;
jthread源码:https://research.edm.uhasselt.be/jori/page/CS/Jthread.html;

源码资源我已上传,还包括编译好的VS版本和MinGW版本jrtplib和jthread库libjrtp.dll、libjthread.dll。
https://download.csdn.net/download/weixin_40355471/21056244

编译前准备
解压缩源码,新建文件夹src(存放源码), build(存放CMAKE生成的文件);
jrtplib依赖jthread,所以先编译jthread;
CMAKE_INSTALL_PREFIX和LIBRARY_INSTALL_DIR生成的目标文件目录,可以自定义。

2、使用Visual Studio编译

1.编译jthread
cmke运行/bin/cmake-gui.exe
分别选择源码目录和构建目录
点击configure,选择vs2013,选择位数
修改CMAKE配置项,JTHREAD_COMPILE_STATIC勾选则是生成静态库,CMAKE_INSTALL_PREFIX和LIBRARY_INSTALL_DIR修改一下路径
配置完成后再次点击configure,点击generate生成构建目录。
在这里插入图片描述
使用vs2013打开\build_vs\jthread-1.3.3\jthread.sln,先生成ALL_BULID,再生成INSTALL,在构建目录生成jthread_d.dll和jthread_d.lib;
debug版和release版可以都生成。

2.编译jrtplib
CMAKE打开jrtplib源码和构建目录,点击configure,选择vs2013,选择位数
因为依赖jthread,这里需要配置依赖库的路径、cmake路径和include头文件路径
JTHREAD_ENABLED勾选则是需要依赖jthread
THREAD_COMPILE_STATIC勾选则是生成静态库
配置完成后再次点击configure,点击generate生成构建目录。
在这里插入图片描述
使用vs2013打开\build_vs\jrtplib-3.11.2\jrtplib.sln,先生成ALL_BULID,再生成INSTALL,在构建目录生成jrtplib_d.dll和jrtplib_d.lib;
注意位数要和cmake里面配置时的位数一致;
debug版和release版可以都生成。

3、使用MinGW编译

1.编译jthread
cmke运行/bin/cmake-gui.exe
分别选择源码目录和构建目录

点击configure,选择MinGW Makefiles作为编译器;
这一步cmake可能会报错:Error in configur process,project files may be invalid:CMake was unable to find a build program corresponding to “MinGW Makefiles”;
解决方法:cmake勾选Advanced,对变量:CMAKE_MAKE_PROGRAM 设置值为QT目录下的mingw32-make.exe,比如:C:/Qt/Qt5.12.2/Tools/mingw730_64/bin/mingw32-make.exe
再次Configuring即可;
如果提示找不到libwinpthread-1.dll,搜索libwinpthread-1.dll,拷贝到cc1.exe所在文件夹。

cmake配置与上面的类似,配置完成后再次点击configure,点击generate生成构建目录。
在这里插入图片描述
MinGW 方式生成的是makefile文件,打开qt对应版本的命令行提示符窗口:
在这里插入图片描述
cd到\build\jthread-1.3.3\文件夹,依次输入mingw32-make和mingw32-make install进行编译和安装;
此时在当前文件夹生成libjthread.a、libjthread.dll、libjthread.dll.a库文件。

2.编译jrtplib
CMAKE打开jrtplib源码和构建目录,点击configure,选择MinGW Makefiles作为编译器;
因为依赖jthread,这里需要配置依赖库的路径、cmake路径和include头文件路径;
这里配置依赖库路径与上面不同,JTHREAD_LIB_DEBUG配置libjthread.dll.a,JTHREAD_LIB_RELEASE配置libjthread.a;
与VS编译时不同的是,不要勾选“JRTPLIB_SUPPORT_MEMORYMGMT”,否则编译会报RTPNew定义与调用无法匹配的错误;
配置完成后再次点击configure,点击generate生成构建目录。
在这里插入图片描述
在指定构建目录生成makefile文件,与编译jthread类型,运行qt命令行,cd到构建目录\build\jrtplib-3.11.2\,输入mingw32-make进行编译;
如果提示ui64无法识别的错误,ui64表示unsigned long long int,放在整数的结尾用于强制类型转换,将源码rtptimeutilities.h中的xxxxxui64都改成(unsigned __int64)xxxxx即可。

编译成功后,输入mingw32-make install 进行安装,在构建目录生成libjrtp.a、libjrtp.dll、libjrtp.dll.a库文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值