我们正在通过Visual为postgres创建一个简单的扩展,它在生成错误时崩溃:“函数_foo”中引用的未解析的外部符号_pg_detoast_datum“”
#include "postgres.h"
#include<sys/types.h>
#include<sys/stat.h>
#include "fmgr.h"
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
/* Add a prototype marked PGDLLEXPORT */
PGDLLEXPORT Datum foo(PG_FUNCTION_ARGS);
PG_FUNCTION_INFO_V1(foo);
Datum
foo(PG_FUNCTION_ARGS)
{
text *arg = PG_GETARG_TEXT_P(0); // <-- error appears to be here
PG_RETURN_INT32(1);
}
如果我们将文本*arg = PG_GETARG_TEXT_P(0)更改为int32 arg = PG_GETARG_INT32(0),则工作正常;
发布于 2016-10-14 08:56:19
问题是VS需要x86 PostgreSQL版本(而不是x64)来构建项目。
面向未来读者的P.S>。Pavel提供了一个链接,指向在VS - http://blog.2ndquadrant.com/compiling-postgresql-extensions-visual-studio-windows/中构建PostgreSQL扩展的实用教程
https://stackoverflow.com/questions/40027848
复制相似问题