[英]Install shared library using snap
我有项目,这是由cmake构建的,我想要带有snap的软件包。 项目包括可执行文件和库(将其称为a和liba )。
我的snapcraft.yaml文件如下所示:
name: a
version: "0.9"
summary: xyz
description: xyz
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: strict
apps:
a:
command: a
parts:
a:
plugin: cmake
source: ./a.zip
filesets:
manpages: [ usr/share/man ]
在CMake中, a取决于liba (实际上, a只是liba的 “包装器”,用于bash脚本中)。 当我使用Snapcraft构建项目并安装该软件包(以--dangerous身份安装)时,从终端运行命令a即可正常工作。 但是,当我尝试构建依赖于liba的应用程序(使用gcc )时,出现了以/ usr / bin / x86_64-linux-gnu-ld结尾的问题:找不到-la错误消息。 首先我必须包括报头,即使他们都已经安装到系统默认包括使用目录“-I /卡/年/电流...”(我明白卡入/快/目录中安装文件,但也许我我只是在用snapcraft.yaml做错事了。 然后我从上面的ld得到消息。
我是全新的snap软件包,这是我的第一个项目。 是否可以将liba安装为系统库(在使用gcc构建时可见,使用系统默认目录中的include)?
也许可以通过依赖于liba 的构建将a和liba分成不同的软件包,但是我不确定它是否可以解决共享库的安装问题。
您对此问题有经验吗? 有什么建议吗? 感谢您的回答。
恐怕快照并不十分适合您要尝试执行的操作。 它们对于最终用户应用程序非常有用(例如,使lib在脚本中有用的包装器),但是从设计上来说,它们与系统的其余部分是隔离的。 可以在其中运送库以供其他应用程序使用,但是这些应用程序将需要在/snap/<snap name>/current/
某个位置查找库和标头,该库和标头肯定不在默认搜索路径上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.