首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迁移到Postgres 11时未定义的符号

迁移到Postgres 11时未定义的符号
EN

Database Administration用户
提问于 2018-10-30 14:15:14
回答 2查看 1.8K关注 0票数 1

在将Postgres 10升级到version 11之后,通过使用pg_upgrade,我得到了以下错误:

无法加载库"$libdir/postgis-2.4":错误:无法加载库/usr/pgsql-11/lib/postgis-2.4.so“:/usr/pgsql-11/lib/postgis-2.4.so:未定义符号: geod_polygon_init

我使用的是CentOS 7和Postgis2.4。

我试过调查一下。

代码语言:javascript
复制
# nm -D /usr/pgsql-11/lib/postgis-2.4.so |grep geod_polygon_init
  U geod_polygon_init

该函数由共享库导出!我为什么要犯这个错误?

代码语言:javascript
复制
# ld -v /usr/pgsql-11/lib/postgis-2.4.so
GNU ld version 2.27-28.base.el7_5.1
ld: warning: cannot find entry symbol _start; not setting start address
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `repalloc'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `hash_create'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `get_guc_variables'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `init_MultiFuncCall'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `SPI_exec'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `WinGetFuncArgInPartition'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `SPI_gettype'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `geod_polygon_addpoint'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `get_fn_expr_argtype'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `GetDatabaseEncoding'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `SPI_execute'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `CurrentMemoryContext'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `SPI_getvalue'
...

相关问题:

EN

回答 2

Database Administration用户

回答已采纳

发布于 2018-10-30 14:43:04

我下载了Postgis的源代码2.4.5并自己编译,现在它正常工作了。

我的postgis-2.4.soyum提供的要大得多,2.4Mb对750Mb。从其他生成的库中也可以这样说。

票数 0
EN

Database Administration用户

发布于 2018-11-07 06:59:38

代码语言:javascript
复制
# ld -v /usr/pgsql-11/lib/postgis-2.4.so
GNU ld version 2.27-28.base.el7_5.1
ld: warning: cannot find entry symbol _start; not setting start address
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `repalloc'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `hash_create'

这其实不是个问题。你不能那样用,我想你想在那里使用ldd。它是一个共享对象,而不是一个可执行文件。没有_start (或带有-e的入口点),您就无法调用ld并生成可执行文件

无法加载库"$libdir/postgis-2.4":错误:无法加载库/usr/pgsql-11/lib/postgis-2.4.so“:/usr/pgsql-11/lib/postgis-2.4.so:未定义符号: geod_polygon_init

这个错误是因为我认为您是在链接到Proj4的一个版本,这个版本太旧了。如果有什么问题的话,那就是分发问题了。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/221348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档