gpt4 book ai didi

ubuntu - 将 QT5 应用程序部署到 ubuntu 12.04

转载 作者:行者123 更新时间:2023-12-04 18:41:33 25 4
gpt4 key购买 nike

我使用 QtCreator 和 QT 5.2.1 在 Ubuntu 14.04 32bit 下制作了一个 QT 应用程序。我使用了 QT 框架的二进制分发。我遵循了有关部署 QT 应用程序和全新安装 Ubuntu 14.04 的所有教程,一切似乎都很好。这些问题来自 Ubuntu 12.04。当我尝试运行我的应用程序时,我得到了那些 Glib 错误。

(process:11884): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init()

(process:11884): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed

(process:11884): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init()

(process:11884): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init()

(process:11884): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init()

(process:11884): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(process:11884): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init()

(process:11884): GLib-GObject-CRITICAL **: g_type_interface_add_prerequisite: assertion `G_TYPE_IS_INTERFACE (interface_type)' failed

(process:11884): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed

(process:11884): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(process:11884): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.32.4/./gobject/gtype.c:2722: You forgot to call g_type_init()


谁能帮我解决这些问题?
谢谢
编辑1:
该应用程序使用 sudo 运行,没有错误,但不显示图标 (libappindicator1)

最佳答案

错误消息告诉您问题所在:

GLib-GObject-CRITICAL... You forgot to call g_type_init()

the GLib library 的版本中在 2.36 之前,应用程序需要调用 g_type_init 函数初始化库的 GObject type system显然你的程序没有这样做。 (请注意,它可能是您的程序使用 GLib 构建的库,而不是您的实际代码。)大概 Ubuntu 12 附带的 GLib 版本比 Ubuntu 14 更旧,这说明了它们之间的行为差​​异。

尝试将此代码添加到您的程序的开头 main功能:
if (glib_check_version (2, 36, 0) != NULL)
g_type_init ();

如果该文件不存在,您可能还需要在文件顶部添加此包含:
#include <glib-object.h>

请注意,如果您是针对最新版本的 GLib 构建的,具有 g_type_init出现在您的代码中可能会触发编译器的警告。如果这是一个问题,你可以添加
#define GLIB_DISABLE_DEPRECATION_WARNINGS

在代码的最顶部(在包含 GLib header 之前)以防止这种情况发生。

关于ubuntu - 将 QT5 应用程序部署到 ubuntu 12.04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25724827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com