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的?该用什么方法?
Answers
已经弄好了,待会下班的时候把答案补上来
其实就还看了 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 编译程序就正常了