以下是最常见的helloworld
---------------------------
#include <gtk/gtk.h>
int main( int argc,
char *argv[] )
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
你可以用 gcc 编译上面的程序:
gcc base.c- obase`gtk-config--cflags--libs`
-------------------------------
唉 我被害惨了 以上过程有2个错
导致编译结果如下
# gcc base.c -o base `gtk -config --cflags --libs`
bash: gtk: command not found
base.c:1:21: 错误:gtk/gtk.h:没有那个文件或目录
base.c: In function ‘main’:
base.c:4: 错误:‘GtkWidget’ 未声明 (在此函数内第一次使用)
base.c:4: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
base.c:4: 错误:所在的函数内只报告一次。)
base.c:4: 错误:‘window’ 未声明 (在此函数内第一次使用)
base.c:6: 错误:‘GTK_WINDOW_TOPLEVEL’ 未声明 (在此函数内第一次使用)
以上信息是希望能被更好地被百度收录 帮助更多的像我一样的初学者
出错原因:
-----------------------------
在大部分的开发图书中的第一个例子都有一个头文件#include <gtk/gtk.h>,也就是这句话,让N多人在第一次接触GTK编程就感到受到挫折啊~~~我来解释一下吧
首先是 gtk/gtk.h 这个东西,你是怎么看待/这个东西的呢?其实他是指 gtk.h的上一层文件夹,哈哈,这也是为什么你在gcc编译的时候总是显示出无法找到这个头文件。OK,解决办法,首先要保证你安装了gtk这个包。
安装包的方法:
从你的安装盘(或者去www.gtk.org)找到一个文件叫做gtk+版本号.tar.gz/.tar/.rpm的文件并且选择安装相关联的库。然后同样方法安装Gnome库(www.gnome.org)。
恩,恩。这样你就安装好了这个库了。但是你的 gtk.h又安装在那里呢?
在系统中搜索gtk.h,找到你的系统安装的地方(我用的Centos,我的地址为gtk-2.o/gtk/gtk.h)把这个地址替换 #include <gtk-2.0/gtk/gtk.h>,恩,库的链接现在做好了。但是你如果按照书上的编译我估计还是失败。
命令:gcc base.c -o base `gtk-config --cflags --libs`
我来解释一下哈,-o后面那个东西是最后链接出来的东西如果你没有这个参数的话,系统会自动生成a.out文件,`这个符号是1左面那个,而不是分号右面那个。gtk-config是1.0用的命令,明白了吧,刚才我写的可是gtk-2.0/gtk/gtk.h,所以这个命令应该将gtk-config修改为pkg-config gtk+-2.0。
现在运行吧~./base,呵呵,看到你的东西了吧。
另外,在编译代码之前,你可以先
到/usr/include确认一下gtk.h文件的路径。
怎么把/usr/include/gtk-2.0/gtk这个目录加到头文件搜索目录表里啊?
只要#include <gtk-2.0/gtk/gtk.h>呗。
或者gcc的时候 -I/usr/include/gtk-2.0/gtk,代码里面 #include <gtk.h>
分享到:
相关推荐
// 初始化GTK+程序 gtk_init(&argc, &argv); ``` - **GtkWidget**: GTK+中的基本组件类型。 - `gtk_init(&argc, &argv)`: 初始化GTK+库,通常在程序开始时调用,确保GTK+正确设置环境变量和资源。 #### 2. 创建窗口...
#### 五、编写第一个GTK+程序 下面是一个简单的示例,演示如何创建一个带有“Hello World!”消息的窗口: ```c #include <gtk/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window; gtk_init(&argc, ...
1. Hello World 程序:介绍如何编写一个简单的 GTK+ 程序,包括信号和回调函数的使用。 2. 数据类型:介绍 GTK+ 中的数据类型,包括整数、浮点数、字符串等。 3. 信号处理函数:介绍如何使用信号处理函数来响应用户...
Windows GTK+ 开发环境搭建 ...搭建 GTK+ 开发环境需要下载 GTK+ 包,设置环境变量,配置 VS2008 项目,编写 Hello World 程序等步骤。通过这些步骤,可以成功地在 Windows 平台上搭建 GTK+ 开发环境。
4. **创建第一个GTK+程序**:逐步指导编写一个简单的“Hello, World”程序,让读者了解GTK+程序的基本结构。 5. **布局管理**:讲述如何使用盒式布局(Box)、网格布局(Grid)和流式布局(FlowBox)等管理器来组织...
gtk_window_set_title(GTK_WINDOW(window), "Hello World"); gtk_window_set_default_size(GTK_WINDOW(window), 600, 400); label = gtk_label_new("Hello, World!"); gtk_container_add(GTK_CONTAINER(window)...
同时,也可以编写一个简单的GTK+程序,如"hello-world.c",并使用`gcc`编译它: ``` gcc hello-world.c -o hello `pkg-config --cflags --libs gtk+-3.0` ./hello ``` 6. 使用IDE:虽然命令行编译是基础,但...
用 GTK 来写 Hello World 编译 Hello World 程序 信号和回调函数的原理 事件 Hello World 详解 继续 数据类型 深入探索信号处理函数 改进了的 Hello World 组装构件 组装盒的原理 盒的细节 ...
- **Hello World**:教程首先通过一个简单的“Hello World”程序介绍了如何使用GTK+来编写基本的应用程序。这个例子演示了GTK+的基本结构,包括如何初始化库、创建窗口以及响应事件。 #### 二、信号与回调函数 - *...
4.2 我试着编译我写的一个Hello World小程序,不幸的是我失败了. 为什么呢? 4.3 如何使用编译工具make? 4.4 我在我的Makefile里面使用了后引用元素,为什么我的make失败了? 4.5 我想使用一些配置工具, 我该怎么...
- HELLOWORLD2实验进一步展示了如何改进回调函数,使数据能够被传递到回调函数中并通过标准输出打印出来。 - 在这个实验中,`callback()`函数接收了一个`gpointer`类型的参数`data`,这可以是任何类型的数据。 - ...
编译GTK+程序时,通常会使用`pkg-config`工具来获取所需的编译和链接选项,这可以确保与系统上安装的GTK+版本兼容。在Makefile中,`pkg-config --cflags --libs gtk+-2.0`分别获取编译标志和库链接,用于编译`hello....
gtk_window_set_title(GTK_WINDOW(window), "Hello World"); gtk_window_set_default_size(GTK_WINDOW(window), 600, 400); GtkWidget *button = gtk_button_new_with_label("Click me!"); g_signal_connect...
2.2.6 运行helloworld 17 2.3 Gnome应用程序 17 2.4 GNU C 编译器 18 2.4.1 使用 gcc 18 2.4.2 gcc 选项 18 2.5 初始化库 19 2.6 用popt分析参数 20 2.6.1 参数分析方法 20 2.6.2 GnomeHello程序的参数分析 22 2.7 ...
对于初学者,从创建一个简单的“Hello World”程序开始是理想的起点。若编译时遇到问题,如链接错误,确保`PKG_CONFIG_PATH`环境变量包含了GTK+和相关库的`.pc`文件路径。此外,熟悉`make`工具对于管理项目构建流程...
对于初学者,推荐先从简单的“Hello, World”程序开始,逐步过渡到复杂的UI设计。同时,理解GTK+的异步模型和数据模型视图控制器(MVC)模式也是至关重要的。 总之,"GNOME\GTK+教程两份(网页+PDF)"是一份宝贵的...
”中,我们介绍了三个“Hello World!”的应用示例,其中两个是在控制台上运行的,使用标准输入输出来进行交互;而第三个则是我们的第一个 GTK+ 应用程序,在这个例子中,我们实现了两个信号处理函数或回调函数,这...