linux系统图形接口错误,ubuntu14.04 gtk+安装与常见错误

一、安装

1、安装gcc/g++/gdb/make 等基本编程工具

$sudo apt-get install build-essential

2、安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件

$sudo apt-get install gnome-core-devel

3、用于在编译GTK程序时自动找出头文件及库文件位置

$sudo apt-get install pkg-config

4、安装 devhelp GTK文档查看程序

$sudo apt-get install devhelp

5、安装 gtk/glib 的API参考手册及其它帮助文档

$sudo apt-get install libglib2.0-doc libgtk2.0-doc

6、安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库

$sudo apt-get install glade libglade2-dev

或者

$sudo apt-get install glade-gnome glade-common glade-doc

7、安装gtk2.0 或者 将gtk+2.0所需的所有文件统通下载安装完毕

$sudo apt-get install libgtk2.0-dev

或者

$sudo apt-get install libgtk2.0*

二、查看GTK库版本

1、查看1.2.x版本

$pkg-config --modversion gtk+

2、查看 2.x 版本

$pkg-config --modversion gtk+-2.0

3、查看pkg-config的版本

$pkg-config --version

4、查看是否安装了gtk

$pkg-config --list-all grep gtk

三、测试程序

//Helloworld.c

#include

int main(int argc,char *argv[])

{

GtkWidget*window;

GtkWidget*label;

gtk_init(&argc,&argv);

/* create the main, top level, window */

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

/* give it the title */

gtk_window_set_title(GTK_WINDOW(window),"Hello World");

/* connect the destroy signal of the window to gtk_main_quit

* when the window is about to be destroyed we get a notification and

* stop the main GTK+ loop

*/

g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit),NULL);

/* create the "Hello, World" label */

label = gtk_label_new("Hello, World");

/* and insert it into the main window */

gtk_container_add(GTK_CONTAINER(window),label);

/* make sure that everything, window and label, are visible */

gtk_widget_show_all(window);

/* start the main loop, and let it rest until the application is closed */

gtk_main();

return 0;

}

四、编译运行

1、编译

$gcc -o Helloworld Helloworld.c `pkg-config --cflags --libs gtk+-2.0`

2、运行

$./Helloworld

常见错误:

sudo apt-get install gnome-core-devel

下列软件包有未满足的依赖关系:

gnome-core-devel : 依赖: gnome-platform-devel (= 1:3.8+4ubuntu3) 但是它将不会被安装

依赖: libatspi2.0-dev (>= 2.4) 但是它将不会被安装

依赖: libatkmm-1.6-dev (>= 2.4) 但是它将不会被安装

依赖: libbrasero-media3-dev (>= 3.4) 但是它将不会被安装

依赖: libcaribou-dev (>= 0.4) 但是它将不会被安装

依赖: libclutter-gst-dev (>= 1.5.4) 但是它将不会被安装

依赖: libdconf-dev (>= 0.12) 但是它将不会被安装

依赖: evolution-data-server-dev (>= 3.8) 但是它将不会被安装

依赖: libedataserver1.2-dev (>= 3.8) 但是它将不会被安装

依赖: libcamel1.2-dev (>= 3.8) 但是它将不会被安装

依赖: libebook1.2-dev (>= 3.8) 但是它将不会被安装

依赖: libedata-book1.2-dev (>= 3.8) 但是它将不会被安装

依赖: libebook-contacts1.2-dev (>= 3.8) 但是它将不会被安装

依赖: libecal1.2-dev (>= 3.8) 但是它将不会被安装

依赖: libedata-cal1.2-dev (>= 3.8) 但是它将不会被安装

依赖: libebackend1.2-dev (>= 3.8) 但是它将不会被安装

依赖: libevince-dev (>= 3.4) 但是它将不会被安装

依赖: libfolks-dev (>= 0.6.9) 但是它将不会被安装

依赖: libgconf2-dev (>= 3.2) 但是它将不会被安装

依赖: libgck-1-dev (>= 3.4) 但是它将不会被安装

依赖: libgcr-3-dev (>= 3.4) 但是它将不会被安装

依赖: libgeocode-glib-dev (>= 0.99) 但是它将不会被安装

依赖: libgjs-dev (>= 1.32) 但是它将不会被安装

依赖: libglibmm-2.4-dev (>= 2.32) 但是它将不会被安装

依赖: libgmime-2.6-dev (>= 2.6) 但是它将不会被安装

依赖: libgnome-bluetooth-dev (>= 3.4) 但是它将不会被安装

依赖: libgnome-desktop-3-dev (>= 3.4) 但是它将不会被安装

依赖: libgnome-menu-3-dev (>= 3.4) 但是它将不会被安装

依赖: libpanel-applet-4-dev (>= 3.4) 但是它将不会被安装

依赖: gobject-introspection (>= 1.32.1) 但是它将不会被安装

依赖: libgirepository1.0-dev (>= 1.32.1) 但是它将不会被安装

依赖: libgstreamer-plugins-base1.0-dev (>= 0.10.36) 但是它将不会被安装

依赖: libgtkmm-3.0-dev (>= 3.4) 但是它将不会被安装

依赖: libgucharmap-2-90-dev (>= 1:3.4) 但是它将不会被安装

依赖: libjson-glib-dev (>= 0.14) 但是它将不会被安装

依赖: libchamplain-gtk-0.12-dev 但是它将不会被安装

依赖: libcroco3-dev (>= 0.6.5) 但是它将不会被安装

依赖: libgnome-keyring-dev (>= 3.4) 但是它将不会被安装

依赖: libgnomekbd-dev (>= 3.4) 但是它将不会被安装

依赖: libgtop2-dev (>= 2.28.4) 但是它将不会被安装

依赖: libgweather-3-dev (>= 3.4) 但是它将不会被安装

依赖: libgxps-dev (>= 0.2) 但是它将不会被安装

依赖: libnotify-dev (>= 0.7.5) 但是它将不会被安装

依赖: libpeas-dev (>= 1.4) 但是它将不会被安装

依赖: librsvg2-dev (>= 2.36) 但是它将不会被安装

依赖: libsoup-gnome2.4-dev (>= 2.38) 但是它将不会被安装

依赖: libwacom-dev (>= 0.4) 但是它将不会被安装

依赖: libwnck-3-dev (>= 3.4) 但是它将不会被安装

依赖: libmutter-dev (>= 3.4) 但是它将不会被安装

依赖: libnautilus-extension-dev (>= 3.4) 但是它将不会被安装

依赖: libnm-gtk-dev (>= 0.9.4) 但是它将不会被安装

依赖: libnm-glib-dev (>= 0.9.4) 但是它将不会被安装

依赖: libpangomm-1.4-dev (>= 2.28) 但是它将不会被安装

依赖: python-gobject-dev (>= 3.2) 但是它将不会被安装

依赖: librest-dev (>= 0.7.12) 但是它将不会被安装

依赖: libseed-gtk3-dev (>= 3.2) 但是它将不会被安装

依赖: libtelepathy-glib-dev (>= 0.18) 但是它将不会被安装

依赖: libtelepathy-farstream-dev (>= 0.4) 但是它将不会被安装

依赖: libtotem-plparser-dev (>= 3.4) 但是它将不会被安装

依赖: valac (>= 0.20) 但是它将不会被安装

依赖: libvte-2.90-dev (>= 1:0.32) 但是它将不会被安装

E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

解决方法:

打开 software & update,在 update 中 把 important security updates 和 Recommended updates 勾选上,再 sudo apt-get update。

或者更改源:

点击右上角的”搜索“图标,在搜索框中输入update,在显示的应用列表中,点击”Software&Updates(软件&更新)“。

在弹出的”Software&Updates“窗口中,选择”Ubuntu Software“,你可以看到”Download from(下载源)“是”Server for United States(美国服务器)“。点击”Server for United States“下拉菜单,选择”Other...(其他)“。

在弹出”Choose a Download Server(选择下载服务器)“窗口中向上拉,找到China(中国),然后,选择中国的服务器,这里可以选择教育源,网易、阿里等等。(我在这里选的是163(网易)的),然后点击”Choose Server(选择服务)“按钮。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值