参考VLC-Qt的编译与使用 windows10+VS2019+qt5.15
下载源码
VLC-QT
https://github.com/vlc-qt/vlc-qt
可以通过git或者直接下载ZIP文件,但是里面的libvlc-header和packaging没有下载下来,需要再自行下载。
VLC
https://download.videolan.org/vlc/last/win64/
我选择的是vlc-3.0.18-win64.7z
。
下载Cmake
可以参考网上教程下载cmake
编译
部署环境
将这些文件复制到Qt目录中,我电脑的Qt目录是C:\Qt\5.15.2\msvc2019_64
。操作步骤如下:
- plugins文件夹和libvlc.dll,libvlccore.dll复制到Qt目录的bin中
- sdk/include/vlc目录复制到qt目录中的include目录中
- sdk/lib下的所有lib文件复制到Qt目录下的lib中
- 在电脑的环境变量中,新建一个变量,名为VLC_PLUGIN_PATH,值为Qt目录中plugins的路径
使用cmake生成项目
打开cmake-gui.exe
点了configure之后,选择visual studio 17 2020 (根据自己电脑情况来),optional platform for generator
选择x64,然后点Finish.
CMAKE_INSTALL_PREFIX
最好修改成D盘,不然可能出现权限问题。LIBVLCCORE_LIBRARY
改成"libvlccore.lib"LIBVLC_LIBRARY
改成"libvlc.lib"- 点击“Add Entry",增加一个名为CMAKE_DEBUG_POSTFIX的cmake环境变量,type设置为string,value为"d"
然后店家configure,再点击generate。
修改build目录下的"cmake_install.cmake"文件
原来是"include",这里要修改成"bin",上图是修改之后的。
使用visual studio打开项目生成
双击VLC-Qt.sln
需要修改一部分配置,不然有可能报错。主要是修改Core,PluginQml,Qml,Widgets。以Core为例子:
- 右击Core,选择属性
- 左上角的配置我选择的是release版本的,也可以release和debug版本都修改一下这个配置
- 链接器->命令行->其他选项,增加
/SAFESEH:NO
。如图:
- 点击确定
- PluginQml,Qml,Widgets也做同样的修改
右键"ALL BUILD"选择生成
第一次会生成失败,根据错误提示去修改错误。
“libvlc_media_read_cb”: 未声明的标识符
打开Core->外部依赖项->vlc.h
添加
typedef __int64 ssize_t;
poll:找不到标识符
打开Core->外部依赖项->vlc_threads.h
将下面这行代码放到函数上方,如上图所示
# define poll(u,n,t) vlc_poll(u, n, t)
重新生成项目,生成成功。
生成INSTALL项目
右击INSTALL,点击生成,又会出现错误:MSB302命令setlocal......
,于是我参考VLC-Qt的编译与使用 windows10+VS2019+qt5.15的方法
INSTALL项目属性→配置属性→生成事件→生成后事件,将“在生成中使用”改为“否”
但是还是有问题,后来我在配置管理器中,将INSTALL的配置改成Release,然后再生成INSTALL项目,这次就成功了。
找到编译好之后的项目
之前用CMAKE配置的时候,有一个变量是CMAKE_INSTALL_PREFIX
,这个就是编译好的项目的地方。