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

Ubuntu 20.04下libnotify hello world程序编译链接错误如何解决

问题原因

你出现链接错误的核心原因是GCC编译时的参数顺序错误:Linux的ld链接器按从左到右的顺序处理输入参数,依赖库(-lxxx类参数)必须放在调用了库函数的源文件/目标文件的后面。你现在把pkg-config返回的带-lnotify的参数放在了hello_world.c前面,链接器扫描库的时候还没处理源文件的符号需求,就直接把库跳过了,最后就会报未定义引用错误。

修复方法

把编译命令调整为源文件在前,pkg-config参数在后即可:

gcc hello_world.c `pkg-config --cflags --libs libnotify`

执行命令后即可正常编译出可执行文件,运行后就能看到系统弹出的通知提示。

你也可以用标准拆分写法,头文件参数在前、库参数在后,逻辑更清晰:

gcc `pkg-config --cflags libnotify` hello_world.c `pkg-config --libs libnotify`

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:45:04