GTK中strlen不兼容问题
时间:2010-08-11
来源:互联网
代码:
#include<gtk/gtk.h>
GtkWidget *text;
GtkTextBuffer *buffer;
GtkTextIter *Iter;
void button_event(GtkWidget *widget,gpointer *data);
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *box;
gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window,200,150);
g_signal_connect(GTK_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);
box = gtk_vbox_new(FALSE,0);
gtk_widget_set_size_request(window,200,120);
gtk_container_add(GTK_CONTAINER(window),box);
gtk_box_pack_start(GTK_BOX(box),text,FALSE,FALSE,0);
buffer = gtk_text_view_get_buffer(GTK_TEXT(text));
gtk_widget_show(text);
button = gtk_button_new_with_label("start"
;
gtk_box_pack_start(GTK_BOX(box),button,FALSE,FALSE,5);
g_signal_connect(GTK_OBJECT(window),"clicked",GTK_SIGNAL_FUNC(button_event),NULL);
gtk_widget_show(window);
gtk_main();
}
void button_event(GtkWidget *widget,gpointer *data)
{
const gchar *texta ="wo cao!";
GtkTextIter start,end;
GtkTextBuffer *buffer;
gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(buffer),&start,&end);
gtk_text_buffer_insert(GTK_TEXT_BUFFER(buffer),&start,texta,strlen(texta));
gtk_widget_show(box);
text = gtk_text_new();
}
编译的错误如下:
zhencao.c: In function ‘main’:
zhencao.c:22: 警告:赋值时将整数赋给指针,未作类型转换
zhencao.c:26: 警告:传递参数 1 (属于 ‘gtk_text_view_get_buffer’)时将整数赋给指针,未作类型转换
zhencao.c: In function ‘button_event’:
zhencao.c:43: 警告:隐式声明与内建函数 ‘strlen’ 不兼容
/tmp/ccj0fiRj.o: In function `main':
zhencao.c
.text+0x142): undefined reference to `GTK_TEXT'
collect2: ld 返回 1
百度了,也没正规的解决方法,希望大家帮忙
#include<gtk/gtk.h>
GtkWidget *text;
GtkTextBuffer *buffer;
GtkTextIter *Iter;
void button_event(GtkWidget *widget,gpointer *data);
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *box;
gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window,200,150);
g_signal_connect(GTK_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);
box = gtk_vbox_new(FALSE,0);
gtk_widget_set_size_request(window,200,120);
gtk_container_add(GTK_CONTAINER(window),box);
gtk_box_pack_start(GTK_BOX(box),text,FALSE,FALSE,0);
buffer = gtk_text_view_get_buffer(GTK_TEXT(text));
gtk_widget_show(text);
button = gtk_button_new_with_label("start"

gtk_box_pack_start(GTK_BOX(box),button,FALSE,FALSE,5);
g_signal_connect(GTK_OBJECT(window),"clicked",GTK_SIGNAL_FUNC(button_event),NULL);
gtk_widget_show(window);
gtk_main();
}
void button_event(GtkWidget *widget,gpointer *data)
{
const gchar *texta ="wo cao!";
GtkTextIter start,end;
GtkTextBuffer *buffer;
gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(buffer),&start,&end);
gtk_text_buffer_insert(GTK_TEXT_BUFFER(buffer),&start,texta,strlen(texta));
gtk_widget_show(box);
text = gtk_text_new();
}
编译的错误如下:
zhencao.c: In function ‘main’:
zhencao.c:22: 警告:赋值时将整数赋给指针,未作类型转换
zhencao.c:26: 警告:传递参数 1 (属于 ‘gtk_text_view_get_buffer’)时将整数赋给指针,未作类型转换
zhencao.c: In function ‘button_event’:
zhencao.c:43: 警告:隐式声明与内建函数 ‘strlen’ 不兼容
/tmp/ccj0fiRj.o: In function `main':
zhencao.c

collect2: ld 返回 1
百度了,也没正规的解决方法,希望大家帮忙
作者: killerezero 发布时间: 2010-08-11
这里貌似不是strlen的问题是你的GTK_TEXT的问题
作者: daybreakcx 发布时间: 2010-08-11
附上google搜到的两个结果:
1、#include之前加上#define GTK_ENABLE_BROKEN
2、看这里:http://mail.gnome.org/archives/g ... tober/msg00141.html
1、#include之前加上#define GTK_ENABLE_BROKEN
2、看这里:http://mail.gnome.org/archives/g ... tober/msg00141.html
作者: daybreakcx 发布时间: 2010-08-11
好像不行,楼上的大哥你有QQ吗?QQ里请教你
作者: killerezero 发布时间: 2010-08-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28