转:https://www.cnblogs.com/gylei/p/3196887.html
https://blog.csdn.net/qq_38880380/article/details/78232719
安装gtk2.0
sudo apt-get install libgtk2.0-dev查看 2.x 版本
pkg-config --modversion gtk+-2.0 #有可能需要sudo apt-get install pkg-config查看是否安装了gtk
pkg-config --list-all | grep gtk
gtk+版的helloworld测试程序
#include <gtk/gtk.h>
int main(int argc, char* argv[])
{
GtkWidget* window;
GtkWidget* label;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
label = gtk_label_new("Hello World.");
gtk_container_add(GTK_CONTAINER(window), label);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
编译运行
gcc -o helloworld helloworld.c `pkg-config --cflags --libs gtk+-2.0`
./Helloworld
Linux下解决Failed to load module “canberra-gtk-module”:https://www.jianshu.com/p/71bc8b33e1a6
解决方法 sudo apt-get install libcanberra-gtk*
首先确认libcanberra-gtk是否安装
long@long:~$ locate libcanberra-gtk-module.so/snap/gnome-3-26-1604/59/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so/snap/gnome-3-26-1604/64/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so/snap/gnome-3-26-1604/70/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so
发现模块已经安装了,但是却找不到,这是因为linux默认库是从/usr/lib或者/usr/lib64下找,这时候只需要建立一个软连接就行了
ln-s/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so/usr/lib/libcanberra-gtk-module.so
这样就OK了,如果没有库的话,就先装一下库然后再执行上面操作。
作者:信仰与初衷
链接:https://www.jianshu.com/p/71bc8b33e1a6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
运行程序,出现Failed to load module "canberra-gtk-module"错误的解决方案:https://blog.csdn.net/u014337397/article/details/81068991
1.错误内容
错误描述
执行程序时,提示如下错误:
Failed to load module "canberra-gtk-module"
1
2.解决方案
(1)执行语句:
sudo apt-get install libcanberra-gtk-module
1
输入后自动执行安装,安装过程中,需要输入”Y”进行确认。
(2)安装完成后,重新执行程序,则错误不再出现。
————————————————
版权声明:本文为CSDN博主「张慕风」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014337397/article/details/81068991
用于编译gtk程序的Makefile
# a general Makefile to build gtk app in only one src file case.
CC = gcc
CFLAGS =
LDFLAGS= `pkg-config gtk+-2.0 --cflags --libs`
SRCS = $(wildcard *.c)
TARGETS = $(patsubst %.c, %, $(SRCS))
all:$(TARGETS)
$(TARGETS):$(SRCS)
$(CC) $^ -o $@ $(LDFLAGS) $(CFLAGS)
clean:
-rm -rf $(TARGETS) *~ .*swp
.PHONY: clean all
# a general Makefile to build
CC = gcc
CFLAGS =
LDFLAGS = `pkg-config gtk+-2.0 --cflags --libs`
SRCS = test1.c test2.c main.c
TARGETS = app
all:$(TARGETS)
$(TARGETS):$(SRCS)
$(CC) $^ -o $@ $(LDFLAGS) $(CFLAGS)
clean:
-rm -rf $(TARGETS) *~ .*swp
.PHONY: clean all
cygwin下搭建gtk+ 2.0开发环境
到官网http://www.cygwin.com/下载最新的setup.exe,安装执行到Select Packages的时候,搜索安装如下包
libiconv: GNU character set conversion library and utilities
libiconv2: GNU character set conversion library and utilities - runtime(1)
pkg-config: A utility used to retrieve information about installed libraries
zlib-devel: The zlib compression/decompression library (development)
zlib0: The zlib compression/decompression library (runtime)
libpng14: PNG library (1.4 runtime)
libpng14-devel: PNG library (development)
libjpeg-devel: A library for manipulating JPEG image format files (devel)
libjpeg8: A library for manipulating JPEG image format files (runtime)
libtiff-devel: TIFF image library (development)
libtiff5: TIFF image library (runtime)
libglib2.0-devel: GNOME C function library (development)
libglib2.0_0: GNOME C function library (runtime)
libatk1.0-devel: Accessibility Toolkit library (developement)
libatk1.0_0: Accessibility Toolkit library (runtime)
libpango1.0-devel: GNOME text layout and renadering library (development)
libpango1.0_0: GNOME text layout and renadering library (runtime)
libcairo-devel: Cross-device vector graphics library (development)
libcairo: Cross-device vector graphics library (runtime)
libgtk2.0-devel: Multi-platform GUI toolkit (development)
libgtk2.0_0: Multi-platform GUI toolkit (runtime)
gcc-core: C compiler
gcc-g++: C++ compiler
make
vim(非必须)
xinit(xinit这个是最重要的包: X.Org X server initializer)
安装完成之后,检查gcc是否安装成功
$ gcc --version
然后检查gtk+-2.0的详细版本号
$ pkg-config gtk+-2.0 --libs
使用之前的helloworld程序编译测试一下,是否能够通过,运行的时候如果提示Gtk-WARNING **: cannot open display:
重启cygwin控制台,然后执行
$ startxwin
或者在开始菜单下,执行Cygwin-X下的XWin Server,然后再启动应用程序,即可正常运行。