透明水晶 2024-04-17 09:31 采纳率: 96.8%
浏览 4
已结题

编译bluez报错:gmacros.h:241:53: error: size of array '_GStaticAssertCompileTimeAssertion_0' is negative

问题:编译bluez报错:gmacros.h:241:53: error: size of array '_GStaticAssertCompileTimeAssertion_0' is negative

RTL8723D蓝牙模组使用参考

VLC编译错误难解 2 size of array ‘_GStaticAssertCompileTimeAssertion_0’ is negative

_GStaticAssertCompileTimeAssertion_0’ is negative


 2058  cd ../bluez-5.50/
 2059  env
 2060  ./configure --prefix=$INSTALL_PATH/bluez --mandir=$INSTALL_PATH/bluez/man --sysconfdir=$INSTALL_PATH/bluez/etc --localstatedir=$INSTALL_PATH/bluez/var --host=arm-linux CC="arm-linux-gnueabihf-gcc -I$INSTALL_PATH/zlib/include -I$INSTALL_PATH/libffi/include -I$INSTALL_PATH/gettext/include -I$INSTALL_PATH/glib/include -I$INSTALL_PATH/expat/include -I$INSTALL_PATH/dbus/include -I$INSTALL_PATH/libical/include -I$INSTALL_PATH/ncurses/include -I$INSTALL_PATH/readline/include -L$INSTALL_PATH/zlib/lib -L$INSTALL_PATH/libffi/lib -L$INSTALL_PATH/gettext/lib -L$INSTALL_PATH/glib/lib -L$INSTALL_PATH/expat/lib -L$INSTALL_PATH/dbus/lib -L$INSTALL_PATH/libical/lib -L$INSTALL_PATH/ncurses/lib -L$INSTALL_PATH/readline/lib -lreadline -lncursesw" --enable-debug --enable-test --enable-shared --enable-testing --disable-udev --disable-systemd --disable-cups --disable-obex --enable-library --enable-tools --enable-deprecated
 2061  make && make install

img

[fly@752fac4b02e9 bluez-5.50]$ make && make install
make --no-print-directory all-am
  CC       gdbus/mainloop.lo
In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:32,
                 from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from gdbus/mainloop.c:28:
/usr/include/glib-2.0/glib/gtypes.h: In function '_GLIB_CHECKED_ADD_U64':
/usr/include/glib-2.0/glib/gmacros.h:241:53: error: size of array '_GStaticAssertCompileTimeAssertion_0' is negative
  241 | #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:238:47: note: in definition of macro 'G_PASTE_ARGS'
  238 | #define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
      |                                               ^~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:241:44: note: in expansion of macro 'G_PASTE'
  241 | #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED
      |                                            ^~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:423:3: note: in expansion of macro 'G_STATIC_ASSERT'
  423 |   G_STATIC_ASSERT(sizeof (unsigned long long) == sizeof (guint64));
      |   ^~~~~~~~~~~~~~~
Makefile:5858: recipe for target 'gdbus/mainloop.lo' failed
make[1]: *** [gdbus/mainloop.lo] Error 1
Makefile:3278: recipe for target 'all' failed
make: *** [all] Error 2

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-17 09:31
    关注

    引自免费微信小程序:皆我百晓生

    在您提供的信息中,您遇到了一个编译蓝色(BlueZ)时的错误,错误信息是关于gmacros.h文件中的静态断言失败。这个错误通常与编译器对特定数据类型的大小检查有关。

    要解决这个问题,首先尝试更新您的开发环境和依赖项,特别是GLib库。确保您使用的版本是最新的,并且与BlueZ版本兼容。您可以从官方源码仓库下载最新的BlueZ版本,然后按照文档进行安装。

    如果更新依赖项后问题仍然存在,那么可能是因为编译环境的问题,特别是指定了不正确的主机类型或者缺少某些必要的头文件。根据您的配置命令,您正在为ARM架构构建,因此请确保所有依赖项都已正确地针对ARM进行了交叉编译。

    尝试调整./configure命令中的--host参数,确保它匹配您的目标平台。例如,对于ARMv7架构,可以使用--host=arm-linux-gnueabi。如果您的硬件支持AArch64,则可能是--host=aarch64-linux-gnu

    以下是调整后的./configure命令示例:

    ./configure \
        --prefix=$INSTALL_PATH/bluez \
        --mandir=$INSTALL_PATH/bluez/man \
        --sysconfdir=$INSTALL_PATH/bluez/etc \
        --localstatedir=$INSTALL_PATH/bluez/var \
        --host=arm-linux-gnueabi \
        CC="arm-linux-gnueabi-gcc -I$INSTALL_PATH/zlib/include -I$INSTALL_PATH/libffi/include -I$INSTALL_PATH/gettext/include -I$INSTALL_PATH/glib/include -I$INSTALL_PATH/expat/include -I$INSTALL_PATH/dbus/include -I$INSTALL_PATH/libical/include -I$INSTALL_PATH/ncurses/include -I$INSTALL_PATH/readline/include -L$INSTALL_PATH/zlib/lib -L$INSTALL_PATH/libffi/lib -L$INSTALL_PATH/gettext/lib -L$INSTALL_PATH/glib/lib -L$INSTALL_PATH/expat/lib -L$INSTALL_PATH/dbus/lib -L$INSTALL_PATH/libical/lib -L$INSTALL_PATH/ncurses/lib -L$INSTALL_PATH/readline/lib -lreadline -lncursesw" \
        --enable-debug \
        --enable-test \
        --enable-shared \
        --enable-testing \
        --disable-udev \
        --disable-systemd \
        --disable-cups \
        --disable-obex \
        --enable-library \
        --enable-tools \
        --enable-deprecated
    

    执行此命令后,运行makemake install。如果还有问题,请检查您的编译工具链是否完整,包括交叉编译所需的全部组件。

    如果问题依然存在,建议查看GLib的文档或联系其社区,因为这可能是由于GLib库内部定义的某种不兼容性导致的。在这种情况下,可能需要对GLib源码进行一些临时修改以适应您的编译环境,但这通常是作为最后的手段,因为可能会破坏其他依赖于GLib的应用程序的功能。

    如果您不确定如何操作,或者问题仍未得到解决,我建议您寻求更具体的系统管理员或Linux社区的帮助,因为他们可能有处理这类问题的更多经验。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月17日
  • 修改了问题 4月17日
  • 创建了问题 4月17日

悬赏问题

  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 关于无人驾驶的航向角
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了