gpt4 book ai didi

c++ - gthread.h 数组大小为负

转载 作者:太空狗 更新时间:2023-10-29 23:19:07 25 4
gpt4 key购买 nike

我的 .pro 文件中有以下配置

INCLUDEPATH += /home/vickey/ossbuild-read-only/Shared/Build/Linux/x86/include/glib-2.0/
CONFIG += link_pkgconfig
PKGCONFIG += gstreamer-0.10
LIBS += -L/usr/lib `pkg-config --cflags --libs gstreamer-0.10`
LIBS += -L. -L/usr/lib -lphonon -lcurl -ltag -fopenmp -lsayonara_gstreamer

当我尝试构建项目时出现以下错误

/home/vickey/src/player/../../../../ossbuild-read-only/Shared/Build/Linux/x86/include/glib-2.0/glib/gthread.h:-1: In function 'gboolean g_once_init_enter(volatile gsize*)':

/home/vickey/src/player/../../../../ossbuild-read-only/Shared/Build/Linux/x86/include/glib-2.0/glib/gthread.h:348: error: size of array is negative

双击错误会将我带到 gthread.h 文件,并指出下面的行

g_once_init_enter (volatile gsize *value_location)
{
if G_LIKELY ((gpointer) g_atomic_pointer_get (value_location) != NULL)
return FALSE;
else
return g_once_init_enter_impl (value_location);
}

似乎是什么问题?

最佳答案

在为 64 位平台编译古老的 glib 和 pango 时出现同样的错误。

下面是 g_atomic_pointer_get 源代码在该版本中的样子:

# define g_atomic_pointer_get(atomic) \
((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gpointer) ? 1 : -1]), \
(g_atomic_pointer_get) ((volatile gpointer G_GNUC_MAY_ALIAS *) (volatile void *) (atomic)))

所以,这里的atomic就是gsize,它必须和gpointer有相同的sizeof,即无效*

它帮助我在 glibconfig.h 中将 gsizegssize 重新定义为 64 位架构上的 8 字节。

同时更新 GLIB_SIZEOF_VOID_PGLIB_SIZEOF_LONGGLIB_SIZEOF_SIZE_T

关于c++ - gthread.h 数组大小为负,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10597422/

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