C GTK2:g_thread_init已弃用
这是我第一次尝试制作一个线程化的软件。它将是基于Arch Linux的GTK2 我遵循了下面的示例: 使用底部带有SIGALRM的示例 我在编译时收到以下警告:C GTK2:g_thread_init已弃用,c,linux,multithreading,gtk,gtk2,C,Linux,Multithreading,Gtk,Gtk2,这是我第一次尝试制作一个线程化的软件。它将是基于Arch Linux的GTK2 我遵循了下面的示例: 使用底部带有SIGALRM的示例 我在编译时收到以下警告: warning: 'g_thread_init' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:260) [-Wdeprecated-declarations] if (!g_thread_supported ()){ g_thre
warning: 'g_thread_init' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:260) [-Wdeprecated-declarations]
if (!g_thread_supported ()){ g_thread_init(NULL); }
我想知道我该怎么做。在线上出现此警告的唯一原因是软件在编译时抛出相同错误的错误报告。很多报告似乎都说要删除这条线
我是不是要把那条线去掉,剩下的就完好无损?还是有更好的办法
我正在制作一个信息娱乐系统,它将在Raspberry Pi型号B上运行,带有触摸屏,我想确保它感觉像iPhone一样灵巧,因此我想以高优先级线程运行图形和用户输入内容
如果有人能为我指出这类东西的正确方向,我将不胜感激。如果需要的话,任何一篇网络文学作品都会有帮助,就像这方面的书籍一样
提前感谢。根据:
g_thread_init自2.32版以来已被弃用,不应在新编写的代码中使用。此功能不再是必需的。GLib线程系统在程序开始时自动初始化
功能原型如下:
void g_thread_init (gpointer vtable);
上述链接中也提到了这一点:
自版本2.32以来,GLib不再支持自定义线程实现,并且忽略vtable
参数,您应该传递NULL
奇怪的是,在一个语句中,他们说您不应该使用它,而在另一个语句中,如果您确实使用它,则将NULL作为它的参数传递。无论哪种方式,如果您使用的是Glib>=2.32,则不再需要调用它 你知道它被什么取代了吗?@FiddlingBits-No似乎找不到关于它的任何东西。从我的理解来看,glib似乎只是自动处理了这一部分,但由于我不确定,我宁愿询问一些在该部门有经验的专业人士。我建议使用GTK3…@BasileStrynkevitch不是GTK3在资源上更重吗?考虑到我将对raspberry pi进行编程。@Rex357 GTK 2和3之间的差异是一些向后不兼容的内部和API更改。没有什么能让GTK3更具资源密集性的了。那就意味着去掉这条线,保持其余的不变?像Gtk默认情况下是线程感知的吗?它是为您调用的。你不能把它传给任何人。