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
.
我需要在没有 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
.