Qt 构建发布和调试库

Qt build both release and debug libraries

我需要在没有 GUI 的 Redhat 后端机器上安装 Qt SDK。 (亚马逊 EC2)。当我尝试安装时,由于无法连接显示器而失败。

然后我尝试下载源码编译。如果我使用 configure -debug,它只会编译调试库。与仅当我指定 -release 时它才编译和安装发布二进制文件相同。同样在我的 *.pro 文件中,它 link 是最后安装的版本,没有考虑 CONFIG += debug 或 CONFIG += release

我需要两种格式。 libQt5Core.so 和 libQt5Core.d.so。并且需要link根据CONFIG分离库。

如果您需要两组库,可以使用 configure -debug-and-release 选项。查看 Configuration Options for Qt 以获得更多选项。

我解决了这个问题。

  • 首先我配置了 configure -debug -qtlibinfix .d 并安装了。
  • 然后我配置了configure -release然后又安装了

现在我有两个二进制文件 *.d.so 用于调试,*.so 用于在 /usr/local/Qt-5.6.0 中发布。

然后编辑/usr/local/Qt-5.6.0/mkspecs/features/qt.prf并替换

MODULE_MODULE = $$eval(QT.$${QTLIB}.module)

MODULE_MODULE =
    debug: MODULE_MODULE = $$eval(QT.$${QTLIB}.module).d
    else: MODULE_MODULE = $$eval(QT.$${QTLIB}.module)

如果我在 *.pro 文件中使用 CONFIG += debug,它会链接到 *.d.so。否则它链接 *.so.