1. 程式人生 > >qt-vlc代碼的編譯問題

qt-vlc代碼的編譯問題

標識 make inpu article github 下載 qml 人的 由於

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 斜杠後面不能有空格

  

qt-vlc代碼的編譯問題