环境准备:
vs2017旗舰版,cmake,Qt Creator
准备开工:
下载源码
VLC开发库
https://download.videolan.org/pub/videolan/vlc/
之所以选择vlc开发库直接下载是因为可能编译vlc会出错,不好解决。所以直接下载官方库方便快捷
版本选择3.0.8,32位-vlc-3.0.8-win32.7z
下载地址:https://download.videolan.org/pub/videolan/vlc/3.0.8/win32/vlc-3.0.8-win32.7z
VLC-Qt
https://vlc-qt.tano.si/
我选择的是 mingw-32位版本下载的:VLC-Qt_1.1.0_win32_mingw.7z
如下图:
环境配置:
1、把plugins目录与libvlc.dll、libvlccore.dll复制到qt安装目录下的bin目录中
(例如:D:\Qt\Qt5.7.1\5.7\msvc2015\bin)
2、把sdk/include/vlc目录复制到qt安装目录下的include目录中
(例如:D:\Qt\Qt5.7.1\5.7\msvc2015\include)
3、把sdk/lib下面的几个lib文件复制到qt安装目录下面的lib目录中
(例如:D:\Qt\Qt5.7.1\5.7\msvc2015\lib)
4、设置环境变量,plugins文件夹的位置
变量名:VLC_PLUGIN_PATH
变量值:D:/Qt/Qt5.7.1/5.7/msvc2015/bin/plugins
准备条件就这些了,cmake就可以找到VLC相关配置信息了。
接下来准备生成工程,编译VLC-Qt库及demo
编译步骤1:cmake打开目录,点击Configure按钮,配置生成vs2017工程配置。
编译步骤2:修改生成工程配置中的下图中红圈那两处,分别是从vlccore.lib,vlc.lib改为libvlccore.lib libvlc.lib
编译步骤3:点击Generate生成vs2017工程,随后点击Open Project使用vs2017打开工程。
编译步骤4:
直接运行可能会报一些错。
以下列举了我在编译该库遇到的一些错误情况及处理方法:
no1.
include\vlc/libvlc_media.h(368): error C2065: “libvlc_media_read_cb”: 未声明的标识符
原因及解决方案:
是由于vlc在window下需要SSIZE_T,因此在 include vlc头文件前增加下面的宏:
#ifdef _WIN32
#include <basetsd.h>
typedef SSIZE_T ssize_t;
#endif
#include "vlc/vlc.h"
no2.
原因及解决方案:
vlc_threads.h(90): error C3861: “poll”: 找不到标识符
将vlc_threads.h中的# define poll(u,n,t) vlc_poll(u, n, t)
提到函数前面即可
no3.
error LNK2026: 模块对于 SAFESEH 映像是不安全的。
原因及解决方案:
关闭SAFESEH警告,不关闭会把这个警告认为错误
分别修改Core,PluginQml,Qml,Widgets工程的属性>>调试>>链接器>>命令行>>其它选项下填入 /SAFESEH:NO 斜杠后面不能有空格