VLC-QT源码编译(Windows10+VS2020+MSVC2019+QT5.15)

参考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

编译

部署环境

![](https://img-blog.csdnimg.cn/21c10c344fe040a1abe633966496578b.png

将这些文件复制到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的路径
    -![在这里插入图片描述](https://img-blog.csdnimg.cn/748043dc0c684d08963742746eb49abc.png

使用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,这个就是编译好的项目的地方。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qaaaaaaz/article/details/131351461