gpt4 book ai didi

c++ - 构建优化的 Qt4 - "./configure"标志及其含义

转载 作者:搜寻专家 更新时间:2023-10-31 01:23:13 26 4
gpt4 key购买 nike

我最近关注了 Qt4-interest 邮件列表中关于构建商业/专有应用程序并将 Qt4 静态链接到其中是否合法的讨论。虽然有一些未经证实的方法(通过向客户提供目标文件和 Makefile 等),但这听起来并不是一个好主意。

我的一个项目正在使用 LGPL 许可的 Qt4 库,我将它们作为单独的 DLL/Dylib/so 发送给我的客户,在所有平台上使用一个简单的安装程序。虽然到目前为止效果很好,但我想优化 a) 通过仅包含我需要的 Qt 库大小来优化安装程序的大小,b) 提高​​我的应用程序的启动/加载速度。

我自己熟悉编译 Qt,但是 Qt 有很多标志和开关。

现在我正在使用以下标志进行构建:

./configure \
-fast \
-opensource \
-qt-sql-sqlite \
-nomake demos examples \
-silent \
-no-qt3support \
-no-gif \
-plugin-sql-mysql \
-release \
-no-xmlpatterns \
-no-multimedia

我不完全确定以下标志具有哪些效果/影响:

  • -no-STL
  • -no-javascript-jit
  • -no-nis
  • -separate-debug-info
  • -no-openvg
  • -no-mitshm

还有什么我可以做的吗,例如,为编译器提供优化开关,或者从构建的 Qt 库中“剥离”未使用的函数以使其更小(这对于静态构建来说很容易)。我对此没有太多经验。

哦,作为旁注,当动态链接到 Qt 时,我编译的应用程序大小约为 600 kb(未剥离)。我对它进行了试验,发现静态链接时它的大小约为 4 MB;但这样一来,我就不必再包含 40 MB 的 Qt 库了。

因此,将以上所有内容放入问题/请求中:

如果您在这个主题上比我更先进,您如何优化/部署自己的应用程序并确保它们快速启动并且只包含需要的内容?

最佳答案

我能想到的事情很少:

  • 使用可进行良好大小优化的编译器/链接器组合。例如,MSVC 在这方面比 MinGW 好得多。所有使用 MSVC 构建的 Qt 发布 DLL 总计约 21 MB。使用 MinGW 构建,它们总计约 41 MB。顺便说一下,您真的需要发布所有 DLL 吗?
  • 使用 -ltcg(链接时代码生成)标志来优化目标文件。
  • 使用预处理器标志排除部分 Qt 功能。例如:QT_NO_STL = -no-STL。
  • 立即尝试 mmx/3d/sse2 标志
  • 删除一些样式(-no-style-)

关于c++ - 构建优化的 Qt4 - "./configure"标志及其含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1807203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com