Lua无法打开 libcairo 并显示“undefined symbol: luaopen_libcairo”错误

我正在尝试配置conky与cairo一起工作,我在默认的.conkyrc顶部添加了“require 'libcairo'”,以确保它能够加载,但是当我运行conky时,它给我这个错误:

error loading module 'libcairo' from file './libcairo.so':
./libcairo.so: undefined symbol: luaopen_libcairo

我已经浏览了其他相关的问题,大多数人建议Lua版本和cairo库不匹配。我已确保使用的是Lua 5.3,并从其下载页面(版本1.17.4)编译了最新版本的Cairo。

我尝试使用Lua解释器加载模块并确定实际导致错误的原因,但是当我使用

>require 'libcairo'

时,它返回相同的错误。

在清除和重新安装conky、lua和libcairo之后,它仍然无法工作。我不知道我做错了什么,但我很乐意提供任何读者需要帮助的信息。

编辑:我应该补充一点,我正在使用带有KDE5的Arch

点赞
用户3342050
用户3342050
sudo apt install libcairo2-dev

你可能已经执行了以下命令,但是不同之处在于 cmake 中包含了 -D 和你希望使用的 flag 的名称。

mkdir build
cd build
cmake -DBUILD_LUA_CAIRO=true ..
nice make -j$(nproc)
sudo make install

https://github.com/brndnmtthws/conky/blob/master/cmake/ConkyBuildOptions.cmake


Cairo 可能需要 Pango。我不会说你必须安装它,但如果上述命令不能满足你的需求,那么你可能要查看 pango / freetype libs 是否是可能的原因。

sudo apt install libpango1.0-dev
cmake -DBUILD_LUA_CAIRO=true -DBUILD_XFT=true ..
2021-01-20 14:41:47
用户1696940
用户1696940

在 Pop!_OS 21.04 (= Ubuntu 20.04 加上一些额外内容) 上,我只需安装 conky-all 包,它会卸载不支持 Cairo 的 conky-std。

2021-10-17 13:30:02