首页 > Qt 静态编译如何加载 qtmultimedia 模块?(windows 7环境下 )

Qt 静态编译如何加载 qtmultimedia 模块?(windows 7环境下 )

下载了Qt5.5.0的源码,按照官方文档和网上教程编译了一个版本
1、下载好相应软件
2、进入源码qtbase文件夹,在命令行使用configure 配置编译选项:

configure  -confirm-license -opensource -prefix "C:\Qt\Qt5.5.0" -debug-and-release -static -platform win32-g++ -opengl desktop -no-angle -nomake examples -nomake tests -skip qtwebkit  -qt-sql-mysql -I "C:\tempdownload\qt-everywhere-opensource-src-5.5.0\qtbase\src\sql\drivers\mysql" -I "D:\mysql_temp\include" 

3、mingw32-make、mingw32-make install

编译好了后测试了一下,多线程,数据库(数据库要把相关lib和dll放入到编译好的目录下lib文件夹)之类的都没问题,可以摆脱各种庞大的dll了。
但是有一个程序用到了qtmultimedia的 mediaplayer就发现编译提示是没有这个模块(只要在QT += multimedia就会出错),构建没通过,这时才发现qtmultimedia模块貌似没有编译到Qt。找了下官网的编译几篇相关的文章:

http://doc.qt.io/qt-5.5/windows-building.html
这篇是关于在windows下编译的,编译成功了应该是没有问题的,主要是下面的文章

http://doc.qt.io/qt-5.5/configure-options.html
http://doc.qt.io/qt-5.5/qtmodules.html
这两篇是关于配置的,不过只说了

With configure, it is possible to include or exclude particular Qt modules in a Qt build.

也是说能实现,但是没有给例子和方法。。。例子是skip跳过那个模块的。

想问一下有没有过朋友Qt静态编译的时候带了 qtmultimedia的?该用什么方法?


已经弄好了,待会下班的时候把答案补上来

其实就还看了 stackoverflow的相同问题的回答链接

只不过那边是linux环境我这里是windows环境。
里面给出的解决方法中有一段shell

# The modules that are relevant for me. Please observe that THE ORDER MATTERS! I would add one module at the time and see how it complains when you try to build it.
MODS="qtx11extras qtimageformats qtscript qtquick1 qtdeclarative qtquickcontrols qtsvg qtmultimedia"

for M in $MODS
do
    echo "----------------------------------------- MODULE: $M"
    echo "----------------------------------------- MODULE: $M" >> $LOG
    # Make module dir
    D=$O/$M
    mkdir -p $D
    cd $D
    # Use new qmake to create module makefile
    $O/qtbase/bin/qmake $SRC/$M/
    # Build module
    make -j$J >> $LOG
done

意思就是 qmake 一下 模块的文件夹 再build一下就行了

下面就是解决方法:

先新建个文件夹,如build文件夹 命令行中进入

>路径/qtbase/bin/qmake.exe 路径/qtmultimedia

经过这一步,build文件夹里面就有了Makefile文件
接下来

>mingw32-make
>mingw32-make install “C:\Qt\Qt5.5.0"

再打开Qt creator 编译程序就正常了


你好我也碰到了同样的问题,但看了你的说明我还是不会做,我是菜鸟自学的qt
然后我下载的是人家编译好的静态库 同时也有默认的动态编译版本,分别在两个文件夹里
我看了你的方法 我C盘下建立了build文件夹,然后用静态库目录bin下的qmake 和静态库目录下的lib/qtmultimedia 回车后提示是Cannot read C:/Qt/Qt5.1.0/5.1.0/mingw48_32/include/QtMultimedia: ?????
Error processing project file: C:\Qt\Qt5.1.0\5.1.0\mingw48_32\include\QtMultimedia

应该怎样做呢 大侠 大神 大哥 help

ps我自己上官网下载个5.1的单独的qmultimedia模块
然后C:\build>C:\Qt\Qt5.1.0\5.1.0\mingw48_32\bin\qmake.exe C:\qtmultimedia-opensource
-src-5.1.0
Info: creating cache file C:/build/.qmake.cache
Checking for openal... no
Checking for directshow... no
Checking for wmsdk... no
Checking for wmp... no
Checking for wmf... no
Checking for evr... no
失败。。。什么意思
晕死,最后自己也解决了,下载更新版本的静态库就好了,我下了个5.3.1的就好了 无语 搞了半天时间

【热门文章】
【热门文章】