我在编写 Makefile 以在 Linux FHS 上安装我的库时需要帮助。https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev说应该有一个从.so
到.so.$(version).$(minor)
的链接和一个从.so.$(version)
到.so
到的链接.so.$(version).$(minor)
。下面是我的 Makefile 的片段
install -D ${CND_ARTIFACT_PATH_${CONF}} $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}.$(version).0.0
ln -s $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}.$(version).0.0 $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}
ln -s $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}.$(version).0.0 $(DESTDIR)/usr/lib/${CND_ARTIFACT_NAME_${CONF}}.$(version)
在打包dpkg-buildpackage -rfakeroot -b
并安装包之后,创建的软链接指向实际的 .so 用于构建包而不是 .so 安装在/usr/lib/
gowtham@VBUbu:~$ ls -la /usr/lib/libbase.so.1*
lrwxrwxrwx 1 root root 67 Aug 25 00:35 /usr/lib/libbase.so.1 -> /home/gowtham/Packages/base-1.0/debian/tmp/usr/lib/libbase.so.1.0.0
-rw-r--r-- 1 root root 170588 Aug 25 00:35 /usr/lib/libbase.so.1.0.0
对于我可以在我的系统上找到的库的符号链接,这些链接都是相对的,而不是绝对的:
所以,看起来 Makefile 应该
cd
对库文件夹做一个并建立相关的符号链接: