简而言之,我的问题是“为什么$ libdir在我的PSQL安装中不起作用”。

CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
    AS '$libdir/liblwgeom', 'BOX2DFLOAT4_in'
    LANGUAGE c IMMUTABLE STRICT;

产生一个错误
could not access file "$libdir/liblwgeom": No such file or directory

尽管
CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
    AS '/usr/local/pgsql/lib/liblwgeom', 'BOX2DFLOAT4_in'
    LANGUAGE c IMMUTABLE STRICT;

正常工作。

输出
% pg_config --pkglibdir
/usr/local/pgsql/lib

似乎是正确的。

最佳答案

我也为这个错误而苦恼。我通过手动将PostGIS lib链接到liblwgeom文件来解决它,如下所示:

ln -s /usr/lib/postgis/1.5.1/postgres/8.4/lib/postgis-1.5.so
    /usr/lib/postgresql/8.4/lib/liblwgeom

我不知道为什么PostGIS会将自己安装在“错误”目录中,或者为什么PostgreSQL在看起来与PostGIS称为liblwgeom的文件相同的文件时会查找名为postgis-1.5.so的文件

我所知道的是,这似乎已经解决了我的问题。

10-06 01:36