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

发布于 2022-09-01 18:07:46 字数 1339 浏览 27 评论 0

下载了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的?该用什么方法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

掐死时间 2022-09-08 18:07:46

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

其实就还看了 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 编译程序就正常了

帅的被狗咬 2022-09-08 18:07:46

你好我也碰到了同样的问题,但看了你的说明我还是不会做,我是菜鸟自学的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的就好了 无语 搞了半天时间

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文