qt5編譯拒絕訪問
① 為什麼這個Qt程序編譯不了
原因:Qt不支持中文的路徑,把源碼的路徑全部改成英文即可解決問題。
② Qt新手求問,我下面這個代碼(《QT5開發及實例》)為什麼編譯運行後按鈕卻無法顯示
QPushButton *quit =new QPushButton("Quit");
改成
QPushButton *quit =new QPushButton("Quit",this);
③ 拿到了一份前輩的QT源碼,打算重新編譯一下,出現如下錯誤信息,有大神知道什麼原因,怎麼破解嗎
估計你不滿足他編譯設置條件,錯誤說/MP應該是一個文件或者目錄,但是並不存在
④ Qt5,QtAV使用,調試時,fatal error LNK1104: 無法打開文件「Qt5AVWidgetsd.lib」,怎麼解決
這段時間需要用QT開發一個播放直播流的功能,能夠播放各種格式的直播流,並且CPU佔用率不要太高(可以佔用GPU),這些是我們的目標。
直播流推流的技術進展在上一篇博客中已經提到了,目前我的能力范圍內只能推送RTMP格式的鏈接,所以需要播放端能夠解析這種格式的鏈接。
下面是一張自己做的圖,對QT可調用的幾種播放方面的開源庫進行對比:
打開build-QtAV-Desktop_Qt_5_7_1_MSVC2015_64bit-Debug文件夾,這個文件夾是和git clone之後的那個目錄同級的,
找到sdk_install.bat,這個腳本能夠自動將相應的DLL文件復制到正確的位置,可以看一下代碼,很容易理解:
View Code
此時就可以使用所有QT-AV的例子了,也可以創造自己的新工程並調用它。
注意:在DEBUG模式下編譯的QT-AV只能讓同樣在DEBUG模式下編譯的工程使用,
如果你想要使用windeployqt來打包你的程序(即生成綠色無安裝版本程序),需要將QT-AV和你自己的工程都在QT Creator的release模式下進行編譯。
更多關於使用windeployqt來打包程序的細節不在此贅述。我已經將自己打包的一個程序發布在了GITHUB上,可以參考一下:https://github.com/xuanli/qt-av-stream-player
切換當前目錄到如下位置:
QtAVexamplessimpleplayer
點擊打開simpleplayer_sdk.pro來在QT Creator中打開這個工程,不要打開simpleplayer.pro;
然後找到playerwindow.cpp,將68行進行如下修改,即可打開指定直播流鏈接(任意ffmpeg支持的格式,RTMP也支持),而非從本地載入一個視頻
1 // QString file = QFileDialog::getOpenFileName(0, tr("Open a video")); 2 QString file = "rtmp://live.hkstv.hk.lxdns.com/live/hks";
再編譯-運行,點擊open即可打開香港位置的這個RTMP格式的直播流
相應的源代碼和綠色版程序已經放在了我的倉庫里:https://github.com/xuanli/qt-av-stream-player
Qt-AV其實已經完成了FQFlib所要開發的對RTMP和RSTP格式直播流播放的支持,而且根據目前的實際測試其並不能播放RTMP(也可能是我自己沒寫好)
但是在已經有輪子的情況下,不太建議FQFlib的作者繼續重新造輪子
RTMP測試源:rtmp://live.hkstv.hk.lxdns.com/live/hks
RTSP測試源:rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov
HTTP和RTMP是直播流鏈接的格式,而直播流本身也有編碼格式和封裝格式。編碼格式如h.264格式(也叫MPEG-4)等;封裝格式則為MP4、WMV、FLV等。具體可以在推流時使用不同的ffmpeg參數進行設置。
H.264的維基網路介紹:
H.264,又稱為MPEG-4第10部分,高級視頻編碼(英語:MPEG-4 Part 10, Advanced Video Coding,縮寫為MPEG-4 AVC)是一種面向塊,基於運動補償的視頻編碼標准(英語:Video_coding_format) 。
MP4和MPEG4並不同:參考自:Difference between MPEG4 and MP4
綜合來說,Qt-AV給我留下的印象最好,其經過了6個年頭的發展,也有了多次的版本迭代,已經較為完善。
如果您想要使用QT開發功能強大,支持播放「格式」眾多且代碼簡單的播放器,非常推薦使用Qt-AV
⑤ QT5靜態編譯無法載入資料庫插件
今天終於自己靜態編譯過了QT5.3.1, 成功用在項目上了, 記錄下configure指令.
configure -confirm-license -opensource -platform win32-msvc2013 -mp -debug-and-release -static -prefix "E:\Qt\5.3.1-static-vs2013" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit
其中 -mp 是啟用多核編譯的開關
⑥ Qt編譯出release版本的xxx.exe文件,運行時出現This application failed*** 提示
給你qt運行所需要的庫,你參考下:
platforms/qwindows.dll 注意這個platforms是一個文件夾,你拷貝整個文件夾就行
icudt51.dll
icuin51.dll
icuuc51.dll
libgcc_s_dw2-1.dll
libGLESv2.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Multimedia.dll
Qt5MultimediaWidgets.dll
Qt5Network.dll
Qt5OpenGL.dll
Qt5Positioning.dll
Qt5PrintSupport.dll
Qt5Qml.dll
Qt5Quick.dll
Qt5Sensors.dll
Qt5Sql.dll
Qt5Svg.dll
Qt5WebKit.dll
Qt5WebKitWidgets.dll
Qt5Widgets.dll
qwindows.dll
⑦ 在vs2010編譯qt程序時就會出現錯誤無法打開文件"Qt5Cored.lib"
PrintPreviewDialog pPDlg;
exec_prefix='NONE'PACKAGE='libevent'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_URL=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
⑧ qt為什麼無法編譯
sudo apt-get install build-essential
安裝G++
然後從qt網站下載linux到完整開發包.bin 文件
在linux下雙擊,然後會安裝,安裝好之後,設置環境變數(方法網上有)。
OK
然後下面到操作都沒有問題了!
qmake -project
qmake **.pro
make