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