You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

g++编译Wayland窗口程序时无法链接相关方法出现未定义引用错误

问题根因
  • 第一类报错No package 'wayland-client-protocol' found:不存在名为wayland-client-protocol的pkg-config包,该部分协议相关头文件已包含在wayland-client的引用体系中,无需单独指定。
  • 第二类链接报错undefined reference to xxx:你的编译命令仅通过pkg-config --cflags获取了头文件搜索路径参数,缺失了--libs参数获取链接阶段所需的库依赖信息,导致链接器无法找到wayland相关函数的实现。
  • 头文件中找不到函数实现属于正常情况:C/C++头文件仅存放函数声明,函数实现存放在对应的动态/静态库文件中,不属于头文件的职责范围。
解决步骤
  1. 先安装完整依赖,Pop!_OS基于Debian/Ubuntu软件源,执行以下命令即可:
sudo apt update && sudo apt install libwayland-dev wayland-protocols pkg-config
  1. 修正编译命令,同时传入编译和链接参数:
g++ program.cxx $(pkg-config --cflags --libs wayland-client) -o program

上述命令会自动加入链接libwayland-client.so的参数,无需手动指定库名,执行后即可正常编译生成可执行文件。

内容的提问来源于stack exchange,提问作者del

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:39:01