Re: C++ Background Workers?

Поиск
Список
Период
Сортировка
От Quinlan Pfiffer
Тема Re: C++ Background Workers?
Дата
Msg-id CAKLJJhdy8D6i0NjZp00gFV1Z1vTtu+5ys4nuvwrtAWP9is_GaQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: C++ Background Workers?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
On Thu, Jul 3, 2014 at 2:00 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Quinlan Pfiffer <quinlan@aquameta.com> writes:
> I'm trying to build a custom background worker for 9.3 in C++.
> Recompiling for -fPIC (as it says to) correctly builds the shared library,
> but then when I try to run Postgres with my .so file being loaded I get
> this:
> https://gist.github.com/qpfiffer/e59c9260b687a23e2743

Is it really necessary to make us go visit some random website for a
two-line error log?

Sorry, wasn't sure on etiquette for that sort of thing. I guess two lines is harmless enough. 

For the archives (since I bet the above link will be 404 soon), the
failure looked like this:

2014-07-03 12:08:42 PDT FATAL:  could not load library "/usr/lib/postgresql/9.3/lib/pg_webrtc.so": /usr/lib/postgresql/9.3/lib/pg_webrtc.so: undefined symbol: _Z30BackgroundWorkerUnblockSignalsv

It looks to me like you need extern "C" { ... } around the
Postgres header files you're importing, so that the C++
compiler won't think it should mangle function names
declared therein.

That worked, thanks for your help.

QP

В списке pgsql-general по дате отправления:

Предыдущее
От: Nick Cabatoff
Дата:
Сообщение: Why does autovacuum clean fewer rows than I expect?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Why does autovacuum clean fewer rows than I expect?