为什么用gtk编译会这样啊 我是用 gcc helloworld.c -o helloworld`pkg-config --cflags --libs gtk+-2.0`

2024-05-16

1. 为什么用gtk编译会这样啊 我是用 gcc helloworld.c -o helloworld`pkg-config --cflags --libs gtk+-2.0`

gcc helloworld.c  -o helloworld`pkg-config --cflags --libs gtk+-2.0`
你要注意 pkg前面的点  和 gtk+2.0后面的点.
这个点是 Tab 上面的那个点, 也是  Q 上面的那个1的左边,
-o helloworld 的前面是 Tab键盘按出来的,不是空格,不然会出错,
我以前也和你一样,慢慢拉,加油学习~! 我现在学习GTK+,感觉GTK+比MFC好学多了,而且这个东西还跨平台,MFC都不跨平台,反正也是写界面,用GTK+就OKL俄~!哈哈哈哈和~!

为什么用gtk编译会这样啊 我是用 gcc helloworld.c -o helloworld`pkg-config --cflags --libs gtk+-2.0`

2. 如何使用gcc在EditPlus编辑器下对GTK程序进行静态编译

GTK的安装

sudo apt-get install vim #使用vim来编写代码,当然您可以使用任何自己喜欢的编辑器

sudo apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具

sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件

sudo apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置

sudo apt-get install devhelp #这将安装 devhelp GTK文档查看程序

sudo apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档

sudo apt-get instal glade libglade2-dev #这将安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库。在Ubuntu的机器上折腾了一下,复制了网上教程的代码在本机上编译。代码的文件名:t1.c。按照教程,用以下命令编译:

gcc t1.c 'pkg-config --cflags --libs gtk+-2.0`

编译结果:找不到gtk/gtk.h。

因为我的Ubuntu是Gnome系统,所以我以为gtk+2.0的开发程序(头文件和库文件)应该已经安装在计算机上了。其实不然,如果在Ubuntu 上开发gtk+2.0的程序,需要安装相应的头文件和库。在控制台窗口输入sudo apt-get install libgtk2.0*, gtk+2.0所需的所有文件统通下载安装完毕。再次应用编译命令:gcc t1.c 'pkg-config --cflags --libs gtk+-2.0,编译通过,运行。

pkg-config是一个用来管理包的程序,在控制台输入 pkg-config --cflags --libs gtk+-2.0 的运行结果:

-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

可以看出,输出的文本包括了gcc编译gtk+2.0所需要的所有选项(头文件目录和库文件)。

这里有一点需要注意, gcc t1.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0两侧的引号并不是真正的引号,而是键盘数字件那一行,最左边的那个字符。如果错用了单引号,gcc无法使用 pkg-config --cflags --libs gtk+-2.0产生的文本作为编译选项。构造程序。
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
gcc gtk1.c `pkg-config --cflags --libs gtk+-2.0`

//////////////////////////////////////////////////////////////////////////////////////////////////////

首先获得超级用户权限

apt-get install vim         #使用vim来编写代码,当然您可以使用任何自己喜欢的编辑器
apt-get install build-essential         #这将安装gcc/g++/gdb/make 等基本编程工具
apt-get install gnome-core-devel          #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
apt-get install pkg-config                #用于在编译GTK程序时自动找出头文件及库文件位置
apt-get install devhelp                    #这将安装 devhelp GTK文档查看程序
apt-get install libglib2.0-doc libgtk2.0-doc             #这将安装 gtk/glib 的API参考手册及其它帮助文档
apt-get instal glade libglade2-dev                      #这将安装基于GTK的界面构造程序

都是安装好后测试一下程序hello.c

#include    ----------我编译时老是说找不到头文件,后来在/usr/include里找到gtk-2.0/gtk/gtk.h,原来是路径错误,最后将头文件路径修改为,终于好了!

void hello(GtkWidget *widget,gpointer data)
{
      g_print("Hello 大家好\n");
}
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
      g_print ("delete event occurred\n");
     return(TRUE);
}
void destroy(GtkWidget *widget,gpointer data)
{
      gtk_main_quit();
}
int main( int argc, char *argv[] )
{
      GtkWidget *window;
      GtkWidget *button;
      gtk_init (&argc, &argv);
      window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
      gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);
      gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);
      gtk_container_set_border_width (GTK_CONTAINER (window), 10);
      button = gtk_button_new_with_label ("Hello 大家好");
      gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);
      gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC(gtk_widget_destroy),GTK_OBJECT (window));
      gtk_container_add (GTK_CONTAINER (window), button);
      gtk_widget_show (button);
      gtk_widget_show (window); /*显示一个窗口*/
      gtk_main(); /*进入主循环*/
      return(0);
}

最后编译运行:

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

////////////////////////////////////////////////////////////////////

GTK的安装

sudo apt-get install vim #使用vim来编写代码,当然您可以使用任何自己喜欢的编辑器

sudo apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具

sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件

sudo apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置

sudo apt-get install devhelp #这将安装 devhelp GTK文档查看程序

sudo apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档

sudo apt-get instal glade libglade2-dev #这将安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库。在Ubuntu的机器上折腾了一下,复制了网上教程的代码在本机上编译。代码的文件名:t1.c。按照教程,用以下命令编译:

gcc t1.c 'pkg-config --cflags --libs gtk+-2.0`

编译结果:找不到gtk/gtk.h。

因为我的Ubuntu是Gnome系统,所以我以为gtk+2.0的开发程序(头文件和库文件)应该已经安装在计算机上了。其实不然,如果在Ubuntu 上开发gtk+2.0的程序,需要安装相应的头文件和库。在控制台窗口输入sudo apt-get install libgtk2.0*, gtk+2.0所需的所有文件统通下载安装完毕。再次应用编译命令:gcc t1.c 'pkg-config --cflags --libs gtk+-2.0,编译通过,运行。

pkg-config是一个用来管理包的程序,在控制台输入 pkg-config --cflags --libs gtk+-2.0 的运行结果:

-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

可以看出,输出的文本包括了gcc编译gtk+2.0所需要的所有选项(头文件目录和库文件)。

这里有一点需要注意, gcc t1.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0两侧的引号并不是真正的引号,而是键盘数字件那一行,最左边的那个字符。如果错用了单引号,gcc无法使用 pkg-config --cflags --libs gtk+-2.0产生的文本作为编译选项。构造程序。

$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0` 
$ ./gtktest

gcc gtk1.c `pkg-config --cflags --libs gtk+-2.0`

3. linux的gcc如何编译gtk程序啊?

因为gtk库需要链接库文件,可以通过pkg-config来获取gtk的库文件路径

linux的gcc如何编译gtk程序啊?

4. 用gcc 编译一个gtk 例子

gcc  abcd.c  -o wxyz  `pkg-config --cflags --libs gtk+-2.0`

5. ubuntu下gtk+编程问题

我也遇到了这种情况,编译命令这样写就可以了:
gcc gtktest.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`

ubuntu下gtk+编程问题

6. ubuntu下编译GTK程序

把`pkg-config --libs --cflags gtk+-2.0`放到最后
就像这样
gcc multithread2.c -o multithread2 `pkg-config --libs --cflags gtk+-2.0`

7. 在头文件中含有#include <gtk/gtk.h>,但在通过gcc编译时会有”gtk/gtk.h,没有那个文件或目录”的提示,原

你试试在终端用pkg-config命令查查看需要用-I参数指定哪些目录才能用gtk。

pkg-config --cflags gtk+-2.0

我执行这个命令后输出的是
-pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12

把你执行这个命令后输出的那一段复制后添加在你gcc的命令行再编译试试看。

在头文件中含有#include <gtk/gtk.h>,但在通过gcc编译时会有”gtk/gtk.h,没有那个文件或目录”的提示,原

8. mingw-gcc test.c -o test `pkg-config --cflags --libs gtk+-2.0`提示错误ld returned 1 exit status

这段啥意思? `pkg-config --cflags --libs gtk+-2.0`
是这段的错误。