我需要确定Ubuntu上安装了哪个版本的GTK +
男人似乎没有帮助
我需要确定Ubuntu上安装了哪个版本的GTK +
男人似乎没有帮助
Answers:
此建议将告诉您安装了哪个次要版本2.0。不同的主要版本将具有不同的程序包名称,因为它们可以共存于系统上(以支持使用旧版本构建的应用程序)。
即使对于通常只允许您在系统上使用一个版本的开发文件,也可以在同一系统上使用gtk 1.x版本和gtk 2.0版本(include文件位于名为gtk-1.2或gtk-2.0)。
简而言之,“系统上安装了哪个版本的GTK”并没有一个简单的答案。但...
尝试类似:
dpkg -l libgtk* | grep -e '^i' | grep -e 'libgtk-*[0-9]'
列出系统上的所有libgtk软件包,包括-dev软件包。dpkg -l
将列出dpkg知道的所有软件包,包括当前尚未安装的软件包,因此我使用grep仅列出了已安装的软件包(以i开头的行)。
或者,如果它是您感兴趣的标头等版本,则可能会更好,请使用pkg-config:
pkg-config --modversion gtk+
会告诉您安装了哪个版本的GTK 1.x开发文件,以及
pkg-config --modversion gtk+-2.0
会告诉您GTK 2.0的版本。旧的1.x版本也有自己的gtk-config程序,可以执行相同的操作。同样,对于GTK + 3:
pkg-config --modversion gtk+-3.0
libgtk*
,必须将indpkg -l libgtk*
括在单引号(dpkg -l 'libgtk*'
)中,以防止在外壳程序级别进行通配符扩展。
您可以使用以下命令:
$ dpkg -s libgtk2.0-0|grep '^Version'
您也可以只编译以下程序并在计算机上运行它。
#include <gtk/gtk.h>
#include <glib/gprintf.h>
int main(int argc, char *argv[])
{
/* Initialize GTK */
gtk_init (&argc, &argv);
g_printf("%d.%d.%d\n", gtk_major_version, gtk_minor_version, gtk_micro_version);
return(0);
}
编译(假设上面的源文件名为version.c):
gcc version.c -o version `pkg-config --cflags --libs gtk+-2.0`
运行此命令时,您将获得一些输出。在旧的嵌入式设备上,我得到以下信息:
[root@n00E04B3730DF n2]# ./version
2.10.4
[root@n00E04B3730DF n2]#
--libs gtk+-3.0
改为编译,则得到3.10.8。这似乎告诉我,我都拥有这两个开发文件,但目前还没有使用。
尝试,
apt-cache policy libgtk2.0-0 libgtk-3-0
要么,
dpkg -l libgtk2.0-0 libgtk-3-0
您也可以只打开突触并搜索libgtk,它将准确显示已安装的lib。
我认为与发行无关的方式是:
gtk-config --version
这将获取GTK + 2和GTK + 3的GTK +库的版本。
dpkg -l | egrep "libgtk(2.0-0|-3-0)"
由于主要版本可以并行安装,因此您的系统上可能同时安装了这两个版本,因此上述命令在我的Ubuntu Trusty系统上将其返回:
ii libgtk-3-0:amd64 3.10.8-0ubuntu1.6 amd64 GTK+ graphical user interface library
ii libgtk2.0-0:amd64 2.24.23-0ubuntu1.4 amd64 GTK+ graphical user interface library
这意味着我已经安装了GTK + 2.24.23和3.10.8。
如果您想要的是开发文件的版本,请使用pkg-config --modversion gtk+-3.0
GTK + 3例如。要使用sed魔术将其扩展到GTK +的不同主要版本,可以得到:
pkg-config --list-all | sed -ne 's/\(gtk+-[0-9]*.0\).*/\1/p' | xargs pkg-config --modversion