qt-vlc代码的编译问题
1,项目代码下载地址:https://github.com/vlc-qt/vlc-qt
2,参考编译教程:https://blog.csdn.net/octdream/article/details/82079907
3,编译环境 :系统 windows7 64位 ,vs2015
正文:
代码下载问题可参考上面csdn网址。
1,cmake过程中 ,可以不必把vlc代码放到qt目录,只需要引用相关的 include lib文件夹即可。运行时把plugins和vlc.dll和vlccore.dll放到exe同一目录即可
2,编译问题。本人在编译过程中遇到的问题。
1,ssize_t问题。参考其他教程 说需要在 vlc.h头文件中增加( typedef __int64 ssize_t;)。本人增加后,编译过程提示ssize_t重载。说明代码中已经定义了 ssize_t.(所以不需增加 typedef __int64 ssize_t; ) 但是不加会报其他错误。本人的解决方案是吧ssize_t 类型改成__int64 此问题解决(但由于ssize_t是跨平台类型,所以程序移植后可能会出问题)。
2,poll问题 提示找不到poll标识符。 解决方案:定位到poll代码区。会看到一个poll的宏定义。需要把这个宏定义剪贴到 poll代码区的上方。问题应该是hi在 下面定义的
3,提示vlc.lib文件读取错误,文件破坏。打开vlc.lib文件 发现他input了另一个libvlc.lib文件 问题可能出在vs2015不支持这个input 解决方法是直接把libvlc.lib改成vlc.lib 把原始的vlc.lib改成其他文件名。同理vlccore.lib提示文件被破坏 更改对应的libvlccore.lib为 vlccore.lib
4,关闭SAFESEH警告 不关闭会把这个警告认为错误 关闭方法 分别修改Core,PluginQml,Qml,Widgets工程的属性>>调试/发布>>链接器>>命令行>>其它选项下填入 /SAFESEH:NO 斜杠后面不能有空格