【问题标题】:Linker error: undefined reference to ‘xdg_popup_interface’链接器错误:未定义对“xdg_popup_interface”的引用
【发布时间】:2022-01-01 16:50:33
【问题描述】:

在尝试编译我的代码时,出现链接器错误:

对“xdg_popup_interface”的未定义引用

似乎是在尝试构建 wlr-layer-shell-v1-client-protocol.o 时发生的,我想,或者类似的,我明天得看看输出。

AFAIK xdg_popup 应该由 wayland-protocols 定义吗?我的 configure.ac.in 有这一行: PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.13], [ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])

我的 src/Makefile.am 有这个:

xfway_CFLAGS = \
$(WAYLAND_SERVER_CFLAGS) \
$(WAYLAND_PROTOCOLS_CFLAGS) \
$(LIBWESTON_CFLAGS) \
$(LIBWESTON_DESKTOP_CFLAGS) \
$(LIBINPUT_CFLAGS) \
$(XKBCOMMON_CFLAGS) \
$(EGL_CFLAGS) \
$(EVDEV_CFLAGS) \
$(GTK_CFLAGS) \
$(LIBXFCONF_CFLAGS)

xfway_LDADD = \
$(WAYLAND_SERVER_LIBS) \
$(WAYLAND_PROTOCOLS_LIBS) \
$(LIBWESTON_LIBS) \
$(LIBWESTON_DESKTOP_LIBS) \
$(LIBINPUT_LIBS) \
$(XKBCOMMON_LIBS) \
$(EGL_LIBS) \
$(EVDEV_LIBS) \
$(PIXMAN_LIBS) \
$(GTK_LIBS) \
$(LIBXFCONF_LIBS)

autotools 的输出没有列出 wayland-protocols 的 cflags 或 libs,这正常吗?虽然 autotools 检测到一个已安装的版本,但它肯定是安装的。

这是我的其余代码: https://github.com/adlocode/xfway

这似乎是提到xdg-popup的部分: https://github.com/adlocode/xfway/blob/master/protocol/wlr-layer-shell-unstable-v1.xml#L194

据我所知,所需的一切都在那里,我错过了什么?

更新: 是不是我必须使用wayland-scanner自己生成xdg-shell头文件?

【问题讨论】:

    标签: c ld autotools wayland


    【解决方案1】:

    我通过使用 wayland-scanner 从 xdg-shell XML 文件生成头文件并将它们编译到我的项目中解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2012-11-03
      相关资源
      最近更新 更多