Qt 从共享对象构建版本

Qt build version from shared object

假设我有一个使用 qt 库的可执行文件。我想用自定义对象替换共享对象。那么如何找到 qt 版本以便我可以从源代码自己构建它?

P.S。所有文件的名称都类似于 libQt5**.so.5.

如果您没有非常特殊的设置,确切的版本是库名称的一部分;所有其他的都是符号链接。例如这里安装的是Qt 4.8.1:

$ ls -l /usr/lib/i386-linux-gnu/libQtCore.*
-rw-r--r-- 1 root root  680 Mai 27  2015 /usr/lib/i386-linux-gnu/libQtCore.prl
lrwxrwxrwx 1 root root   18 Mai 27  2015 /usr/lib/i386-linux-gnu/libQtCore.so -> libQtCore.so.4.8.1
lrwxrwxrwx 1 root root   18 Mai 27  2015 /usr/lib/i386-linux-gnu/libQtCore.so.4 -> libQtCore.so.4.8.1
lrwxrwxrwx 1 root root   18 Mai 27  2015 /usr/lib/i386-linux-gnu/libQtCore.so.4.8 -> libQtCore.so.4.8.1
-rw-r--r-- 1 root root 2,9M Mai 27  2015 /usr/lib/i386-linux-gnu/libQtCore.so.4.8.1

此外,库提供宏和函数以在构建和 运行 时访问版本:QT_VERSIONQT_VERSION_STRqVersion()