QTCreator 集成IMSDK
2023-04-18 15:03:33 时间
本文章已经先存于【腾讯文档】QTCreator 集成IMSDK https://docs.qq.com/doc/DVm1EZFRpb09aZ3F6
- 在QTCreator创建一个窗口项目
- 项目名称随意,默认编译工具我这里选择了QMake,如果您由其他需求可以选择其他的。
- 在工具包选择中(Kit Selection)选择msvc
- 下一步,完成。
- 在生成的QT项目下面,创建include/IM、lib/Win32和lib/x64目录。目录结构如下:
- 下载SDK,将SDK的32库文件(DLL和Lib)放置到项目下lib/Win32,64位库文件放置到lib/x64,同时将头文件导入到include/IM下面
- 编辑项目配置文件.pro,加入如下代码
INCLUDEPATH += $$PWD/.
$$PWD/include/
debug {
contains(QT_ARCH,i386) {
# LIBS += -L$$PWD/lib/Win32/ -lliteav
LIBS += -L$$PWD/lib/Win32/ -limsdk
} else {
# LIBS += -L$$PWD/lib/x64/lib -lliteav
LIBS += -L$$PWD/lib/x64/ -limsdk
}
}
release {
contains(QT_ARCH,i386) {
# LIBS += -L$$PWD/lib/Win32/ -lliteav
LIBS += -L$$PWD/lib/Win32/ -limsdk
} else {
# LIBS += -L$$PWD/lib/x64/lib -lliteav
LIBS += -L$$PWD/lib/x64/ -limsdk
}
}
- 此时配置已经完成,您可以进行开发了。
- 验证:
- 在mainwindow.cpp中修改如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <IM/TIMCloud.h>
#include <QLabel>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this);}
MainWindow::~MainWindow(){ delete ui;}
void MainWindow::initUi(){
QLabel* lab = new QLabel(this);
lab->setText(TIMGetSDKVersion());
this->setFixedSize(size());
}
- 错误排除
- 您可能会遇到编译不通过的情况:提示int 未定义。
解决方案:将IM的头文件转换成UTF-8BOM编码保存(或许您的编译器是其他字符集,请以实际为准),我这里使用的Notepad++转码保存。
- 或许您会遇到编译通过,但是运行调用IM的一些接口就会崩溃。
解决方案:可以参考上面第3点,在工具包选择中(Kit Selection)选择msvc。注意,我这里之前已经下载过Visual Studio 2019,通过Visual Studio 2019安装过,所以能直接选择,您可以在Windows官网上搜索下载MSVC开发工具集。
- 遇到了问题?您可以在此获得全部工程:
链接:https://pan.baidu.com/s/1X9tUE-HchbkKSmT0wozmNg
提取码:lebx
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击