Pei He <hepeim...@gmail.com> wrote: > The extension functions was developed by C++ mixed with C. > ERROR: incompatible library > "/home/hepei/bin/Chameleon/lib/libspgist_trie.so": missing magic block > HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro.
You can use extern "C" blocks for PG_MODULE_MAGIC, PG_FUNCTION_INFO_V1, and function declarations: extern "C" { #include "postgres.h" #include "fmgr.h" PG_MODULE_MAGIC; PG_FUNCTION_INFO_V1(your_function); extern Datum your_function(PG_FUNCTION_ARGS); } However, you should very carefully use C++ exceptions and destructors in your module because PostgreSQL uses siglongjmp; C++ unwind semantics don't work on postgres' errors. You cannot use those C++ features and postgres' APIs together. Regards, --- Takahiro Itagaki NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers