我正在尝试使用库libspatialite在NetBSD平台上扩展sqlite。我已经完成了在pkgsrc (libspatialite-4.1.1)中为libspatialite创建包的第一步。这个包看起来正常工作;pkg_info说它已经安装了,并且我已经验证了PLIST中的文件(在下面的代码块中)已经安装在/usr/pkg/中。但是,当我尝试安装为spatialite-tools构建的包时,configure提示没有安装libspatialite。另外,我不知道如何使用load_extenstion(X,Y)在sqlite3中加载库;documentation中引用的库文件是什么
pkgsrc/databases/libsqlite/PLIST:
@comment $NetBSD$
include/spatialite.h
include/spatialite/debug.h
include/spatialite/gaiaaux.h
include/spatialite/gaiaexif.h
include/spatialite/gaiageo.h
include/spatialite/geopackage.h
include/spatialite/gg_advanced.h
include/spatialite/gg_const.h
include/spatialite/gg_core.h
include/spatialite/gg_dxf.h
include/spatialite/gg_dynamic.h
include/spatialite/gg_formats.h
include/spatialite/gg_mbr.h
include/spatialite/gg_structs.h
include/spatialite/gg_wfs.h
include/spatialite/gg_xml.h
include/spatialite/spatialite.h
include/spatialite/sqlite.h
lib/libspatialite.la
lib/pkgconfig/spatialite.pc发布于 2014-03-31 16:44:38
libspatialite包中有buildlink3.mk文件吗?
如果不是:
为了避免针对隐式依赖关系构建包,pkgsrc仅使显式列出的库对构建包可见。
这样就不会出现这样的问题:一个软件包拾取一个恰好安装的可选依赖项,然后构建一个使用该库但没有在包元数据中列出它的二进制软件包。生成的二进制软件包将在该系统上正常工作……直到可选依赖项被移除,并且在没有该隐藏依赖项的任何其他系统上都将失败。
不管怎样..。在pkgsrc中使用buildlink3.mk文件使必要的文件在构建期间可见。libspatialite buildlink3.mk可能如下所示(将1.0调整为当前lib版本)
# $NetBSD$
BUILDLINK_TREE+= libspatialite
.if !defined(LIBSPATIALITE_BUILDLINK3_MK)
LIBSPATIALITE_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.libspatialite+=libspatialite>=1.0
BUILDLINK_PKGSRCDIR.libspatialite?= ../../devel/libspatialite
BUILDLINK_LIBDIRS.libspatialite+= lib/spatialite
BUILDLINK_RPATHDIRS.libspatialite+= lib/spatialite
BUILDLINK_INCDIRS.libspatialite+= include/spatialite
.endif # LIBSPATIALITE_BUILDLINK3_MK
BUILDLINK_TREE+= -libspatialite然后在相关的包中添加如下内容:
.include "../../devel/libspatialite/buildlink3.mk"https://stackoverflow.com/questions/22746593
复制相似问题