你如何知道在Ubuntu上安装了哪个版本的GTK +?

我需要确定在Ubuntu上安装了哪个版本的GTK +

人似乎没有帮助

这个build议会告诉你安装了哪个2.0版本。 不同的主版本会有不同的软件包名称,因为它们可以在系统上共存(为了支持使用旧版本构build的应用程序)。

即使对于通常只允许在系统上安装一个版本的开发文件,也可以在同一系统上安装gtk 1.x版本和gtk 2.0版本(包含文件位于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 
 $ dpkg -s libgtk2.0-0|grep '^Version' 

得到GTK3版本:

 dpkg -s libgtk-3-0|grep '^Version' 

或者只是版本号

 dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2- 

你也可以编译下面的程序并在你的机器上运行它。

 #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` 

当你运行这个你会得到一些输出。 在我的旧embedded式设备上,我得到以下内容:

 [root@n00E04B3730DF n2]# ./version 2.10.4 [root@n00E04B3730DF n2]# 

尝试,

 apt-cache policy libgtk2.0-0 libgtk-3-0 

要么,

 dpkg -l libgtk2.0-0 libgtk-3-0 

你也可以打开synaptic并searchlibgtk,它会显示你正确的安装了lib。

我认为一个独立于发行版的方法是:

gtk-config --version

尝试:

  dpkg-query -W libgtk-3-bin 

为了使答案比Ubuntu更普遍(我有Redhat):

gtk通常安装在/ usr下,但可能在其他位置。 这应该在环境variables中可见。 检查

 env | grep gtk 

然后尝试find你的gtk文件的存储位置。 例如,使用locate和grep。

 locate gtk | grep /usr/lib 

通过这种方式,我find了/usr/lib64/gtk-2.0 ,它包含了包含许多.so库文件的子目录2.10.0 。 我的结论是,我有GTK +版本2.10。 这与Redhat上的rpm命令非常一致: rpm -qa | grep gtk2 rpm -qa | grep gtk2 ,所以我认为我的结论是正确的。