Qt构建发布版和调试版库

5

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

然后我尝试下载源代码并编译。如果我使用configure -debug,则只编译调试库。同样,如果我指定-release,则仅编译和安装发布二进制文件。此外,在我的*.pro文件中,它链接了最后安装的构建,而不考虑CONFIG += debug或CONFIG += release

我需要两种格式。libQt5Core.so和libQt5Core.d.so。并且需要根据CONFIG链接单独的库。


如何构建现有的软件包更多是一个超级用户或另一个堆栈交换站的问题。 - xaxxon
2个回答

3

我通过以下方法解决了这个问题。

  • 首先,我配置了configure -debug -qtlibinfix .d,然后进行安装。
  • 接着,我配置了configure -release,再次安装。

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

然后编辑了/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

1
如果您想要两组库,可以使用configure -debug-and-release选项。查看Qt的配置选项获取更多选项。

这只适用于Mac OX。我之前尝试过,它会输出以下内容: “警告:-debug-and-release不支持在Mac OS X之外。 Qt可以在发布模式下构建,并提供单独的调试信息,因此不再需要-debug-and-release。” - Supun Induwara
配置-h也说明了“-debug-and-release”。编译并链接两个版本的Qt,一个开启调试,一个不开启(仅适用于Mac)。 - Supun Induwara
你正在尝试构建哪个版本? - A. Sarid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接