简而言之,我的问题是“为什么$ 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
的文件我所知道的是,这似乎已经解决了我的问题。