Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PG_MODULE_MAGIC宏需要扩展库_C_Postgresql - Fatal编程技术网

使用PG_MODULE_MAGIC宏需要扩展库

使用PG_MODULE_MAGIC宏需要扩展库,c,postgresql,C,Postgresql,几年前,我为我的postgreSQL数据库编写了一个C扩展(我想当时是8.0版——我正在使用Version1调用约定) 我尝试使用以下方法在PG 8.4数据库中加载扩展: CREATE FUNCTION foobar(float8[],float8[],float8[],float8[],int4) RETURNS int4 AS '$libdir/pg_myextlib.so' LANGUAGE 'c'; 我得到了错误信息: 错误:库不兼容 “/usr/lib/postgresql/8.4

几年前,我为我的postgreSQL数据库编写了一个C扩展(我想当时是8.0版——我正在使用Version1调用约定)

我尝试使用以下方法在PG 8.4数据库中加载扩展:

CREATE FUNCTION foobar(float8[],float8[],float8[],float8[],int4)  RETURNS int4
AS '$libdir/pg_myextlib.so' LANGUAGE 'c';
我得到了错误信息:

错误:库不兼容 “/usr/lib/postgresql/8.4/lib/pg_myextlib.so”:缺少魔术块 提示:使用PG_模块需要扩展库 宏

我快速搜索了一下,找到了一些关于这个的老话题。它们似乎都提供了一个类似的解决方案

然而,由于这些线程是旧的(+没有投票的答案),我认为最好在这里问一下,看看什么是正确的方法来解决这个问题


旁白:因为底层库是用C编写的,所以我在标记中包含了C。如果您认为“C”不是这个问题的相关标签,请随意删除它。

二进制模块在不同版本之间不兼容。PG_模块_魔术宏确保了这一点。您必须将此宏添加到代码中并重新编译它。也许再多一点。只有SPI API是稳定的,其他内部功能不是稳定的,可能会有一些小的变化

二进制模块在不同版本之间不兼容。PG_模块_魔术宏确保了这一点。您必须将此宏添加到代码中并重新编译它。也许再多一点。只有SPI API是稳定的,其他内部功能不是稳定的,可能会有一些小的变化

你有没有尝试过你找到的任何解决方案?或者更好-你有没有检查过精细手册?你有没有尝试过你找到的任何解决方案?或者更好-你有没有检查过精细手册?