Linux 如何找到GTK+的哪个版本;是否安装在Ubuntu上?
我需要确定Ubuntu上安装了哪个版本的GTK+Linux 如何找到GTK+的哪个版本;是否安装在Ubuntu上?,linux,ubuntu,gtk,gnome,Linux,Ubuntu,Gtk,Gnome,我需要确定Ubuntu上安装了哪个版本的GTK+ 人似乎没有帮助您可以使用以下命令: $ dpkg -s libgtk2.0-0|grep '^Version' 将告诉您安装了2.0的哪个次要版本。不同的主要版本将具有不同的包名称,因为它们可以在系统上共存(以支持使用较旧版本构建的应用程序) 即使对于开发文件(通常只允许您在系统上拥有一个版本),您也可以在同一系统上拥有gtk 1.x版本和gtk 2.0版本(包含文件位于名为gtk-1.2或gtk-2.0的目录中) 因此,简言之,“系统上有什么
人似乎没有帮助您可以使用以下命令:
$ dpkg -s libgtk2.0-0|grep '^Version'
将告诉您安装了2.0的哪个次要版本。不同的主要版本将具有不同的包名称,因为它们可以在系统上共存(以支持使用较旧版本构建的应用程序)
即使对于开发文件(通常只允许您在系统上拥有一个版本),您也可以在同一系统上拥有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配置程序,可以做同样的事情。同样,对于GTK+3:
pkg-config --modversion gtk+-3.0
我认为一种独立于分销的方式是:
gtk配置--version
您也可以打开synaptic并搜索libgtk,它将准确显示安装了哪个lib。获取GTK3版本:
dpkg -s libgtk-3-0|grep '^Version'
或者只是版本号
dpkg -s libgtk-3-0|grep '^Version' | cut -d' ' -f2-
为了使答案比Ubuntu更一般(我有Redhat): gtk通常安装在/usr下,但可能安装在其他位置。这应该在环境变量中可见。核对
env | grep gtk
然后尝试查找gtk文件的存储位置。例如,使用locate
和grep
locate gtk | grep /usr/lib
这样,我找到了
/usr/lib64/gtk-2.0
,其中包含子目录2.10.0
,其中包含许多.so库文件。我的结论是我有gtk+版本2.10。这与Redhat上的rpm命令相当一致:rpm-qa | grep gtk2
,因此我认为我的结论是正确的。您也可以编译以下程序并在您的机器上运行它
#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);
}
当你运行这个程序时,你会得到一些输出。在我的旧嵌入式设备上,我得到以下信息:
[root@n00E04B3730DF n2]# ./version
2.10.4
[root@n00E04B3730DF n2]#
试试看
或者
尝试:
这将获得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。为了将其扩展到GTK+的不同主要版本,使用一些sed魔术,这将提供:
pkg-config --list-all | sed -ne 's/\(gtk+-[0-9]*.0\).*/\1/p' | xargs pkg-config --modversion
由于
apt cache policy
将列出所有可用的匹配项,即使未安装,我建议您使用此命令获得系统上安装的GTK相关软件包的更易于管理的短名单:
apt列表--已安装的libgtk*
这并不难
只需从终端检查您的gtk+toolkit实用程序版本:
gtk-launch --version
虽然gtk配置与发行版无关,但它仅适用于gtk 1.x。更新版本的正确方法是使用pkg配置,正如我在回答中所说的。对windows有什么建议吗?如何在windows上查找已安装的gtk版本?pkg配置程序是windows安装的一部分。因此,在命令行中编写pkg config--modversion gtk+-2.0应该可以工作。非常确定
dpkg-l libgtk*
中的libgtk*
必须包含在单引号中(dpkg-l'libgtk*'
),以防止在shell级别进行通配符扩展。如果没有全局匹配,并且可能没有全局匹配,然后它将被传递给未展开的命令,因此这将起作用。但引用它确实会更安全。要检查gtkmm,请尝试:pkg config--modversion gtkmm-3.0
如果我按照您所说的那样编译,我会得到2.24.27。如果改用--libsgtk+-3.0
编译,则得到3.10.8。这似乎告诉我,我有这两个方面的开发文件,但不是我目前正在使用的。gtkv.c:1:21:致命错误:gtk/gtk.h:没有这样的文件或directory@tsbertalan“当前使用”这取决于你的各种应用程序所针对的GTK版本。这是我用2
代替3
时唯一表现不同的答案。这是GTK+2的小版本,但GTK+3已经过时多年了,GTK+4正在进行中。
dpkg -l | egrep "libgtk(2.0-0|-3-0)"
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
pkg-config --list-all | sed -ne 's/\(gtk+-[0-9]*.0\).*/\1/p' | xargs pkg-config --modversion
gtk-launch --version