Обсуждение: BUG #14215: External C function link failed on Mac OSX
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDIxNQpMb2dnZWQgYnk6ICAg ICAgICAgIE1heCBGb21pdGNoZXYKRW1haWwgYWRkcmVzczogICAgICBtYXgu Zm9taXRjaGV2QGdtYWlsLmNvbQpQb3N0Z3JlU1FMIHZlcnNpb246IDkuNS4z Ck9wZXJhdGluZyBzeXN0ZW06ICAgT1NYCkRlc2NyaXB0aW9uOiAgICAgICAg CgpFeGFtcGxlIGNvZGUgbWFpbi5jcHA6DQoNCmV4dGVybiAiQyIgew0KICAg ICNpbmNsdWRlIDxwb3N0Z3Jlcy5oPg0KICAgICNpbmNsdWRlIDxmbWdyLmg+ DQogICAgI2luY2x1ZGUgPHV0aWxzL2FycmF5Lmg+DQogICAgI2luY2x1ZGUg PHV0aWxzL2xzeXNjYWNoZS5oPg0KICAgICNpbmNsdWRlIDxjYXRhbG9nL3Bn X3R5cGUuaD4NCg0KICAgICNpZmRlZiBQR19NT0RVTEVfTUFHSUMNCiAgICAg ICAgUEdfTU9EVUxFX01BR0lDOw0KICAgICNlbmRpZg0KDQogICAgUEdfRlVO Q1RJT05fSU5GT19WMShwc3FsX25lYXJlc3QpOw0KICAgIERhdHVtIHBzcWxf bmVhcmVzdChQR19GVU5DVElPTl9BUkdTKSB7DQogICAgICAgIGlmKFBHX0FS R0lTTlVMTCgwKSB8fCBQR19BUkdJU05VTEwoMSkpIHsNCiAgICAgICAgICAg IGVsb2coRVJST1IsICJET0MyVkVDOiBOVUxMIElOUFVUIERBVEEiKTsNCiAg ICAgICAgICAgIFBHX1JFVFVSTl9OVUxMKCk7DQogICAgICAgIH0NCg0KICAg ICAgICBBcnJheVR5cGUgKl9kb2NWZWN0b3IgPSBQR19HRVRBUkdfQVJSQVlU WVBFX1AoMCk7DQogICAgICAgIE9pZCBlbFR5cGVWYWxzID0gQVJSX0VMRU1U WVBFKF9kb2NWZWN0b3IpOw0KICAgICAgICBpZiAoZWxUeXBlVmFscyAhPSBG TE9BVDRPSUQpIHsNCiAgICAgICAgICAgIGVsb2coRVJST1IsICJET0MyVkVD OiBJTlZBTElEIElOUFVUIERBVEEgVFlQRSIpOw0KICAgICAgICAgICAgUEdf UkVUVVJOX05VTEwoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGludDE2IHR5 cGVMZW5WYWxzID0gMDsNCiAgICAgICAgYm9vbCB0eXBlQnlWYWxWYWxzID0g ZmFsc2U7DQogICAgICAgIGNoYXIgdHlwZUFsaWduVmFscyA9IGNoYXIoMCk7 DQogICAgICAgIGdldF90eXBsZW5ieXZhbGFsaWduKGVsVHlwZVZhbHMsICZ0 eXBlTGVuVmFscywgJnR5cGVCeVZhbFZhbHMsCiZ0eXBlQWxpZ25WYWxzKTsN Cg0KICAgICAgICBEYXR1bSAqaW5wdXRWYWxzOw0KICAgICAgICBib29sICpu dWxsVmFsczsNCiAgICAgICAgaW50IG5WYWxzOw0KICAgICAgICBkZWNvbnN0 cnVjdF9hcnJheShfZG9jVmVjdG9yLCBlbFR5cGVWYWxzLCB0eXBlTGVuVmFs cywKdHlwZUJ5VmFsVmFscywgdHlwZUFsaWduVmFscywgJmlucHV0VmFscywg Jm51bGxWYWxzLCAmblZhbHMpOw0KDQogICAgICAgIHBmcmVlKGlucHV0VmFs cyk7DQogICAgICAgIHBmcmVlKG51bGxWYWxzKTsNCg0KICAgICAgICBQR19S RVRVUk5fTlVMTCgpOw0KICAgIH0NCn0NCg0KQ29tcGlsaW5nOg0KYysrIC1J L3Vzci9sb2NhbC9DZWxsYXIvcG9zdGdyZXNxbC85LjUuMy9pbmNsdWRlL3Nl cnZlciAtZnBpYyAtYwouL21haW4uY3BwDQoNCkxpbmtpbmc6DQpjKysgLXNo YXJlZCAtbyB0dHQuZHlsaWIgbWFpbi5vIA0KVW5kZWZpbmVkIHN5bWJvbHMg Zm9yIGFyY2hpdGVjdHVyZSB4ODZfNjQ6DQogICJfZGVjb25zdHJ1Y3RfYXJy YXkiLCByZWZlcmVuY2VkIGZyb206DQogICAgICBfcHNxbF9uZWFyZXN0IGlu IG1haW4ubw0KICAiX2Vsb2dfZmluaXNoIiwgcmVmZXJlbmNlZCBmcm9tOg0K ICAgICAgX3BzcWxfbmVhcmVzdCBpbiBtYWluLm8NCiAgIl9lbG9nX3N0YXJ0 IiwgcmVmZXJlbmNlZCBmcm9tOg0KICAgICAgX3BzcWxfbmVhcmVzdCBpbiBt YWluLm8NCiAgIl9nZXRfdHlwbGVuYnl2YWxhbGlnbiIsIHJlZmVyZW5jZWQg ZnJvbToNCiAgICAgIF9wc3FsX25lYXJlc3QgaW4gbWFpbi5vDQogICJfcGZy ZWUiLCByZWZlcmVuY2VkIGZyb206DQogICAgICBfcHNxbF9uZWFyZXN0IGlu IG1haW4ubw0KICAiX3BnX2RldG9hc3RfZGF0dW0iLCByZWZlcmVuY2VkIGZy b206DQogICAgICBfcHNxbF9uZWFyZXN0IGluIG1haW4ubw0KbGQ6IHN5bWJv bChzKSBub3QgZm91bmQgZm9yIGFyY2hpdGVjdHVyZSB4ODZfNjQNCmNsYW5n OiBlcnJvcjogbGlua2VyIGNvbW1hbmQgZmFpbGVkIHdpdGggZXhpdCBjb2Rl IDEgKHVzZSAtdiB0byBzZWUKaW52b2NhdGlvbikNCgoK
max.fomitchev@gmail.com writes: > Linking: > c++ -shared -o ttt.dylib main.o This is not a PG bug. Having said that, the above is never going to work on OS X; it has its own ideas about how to do things. Instead of "-shared" you need "-bundle -bundle_loader /path/to/postgres", and there are some other linker flags that are advisable too. Also, PG expects the file extension for loadable modules to be .so even on OSX. It's usually better to use PGXS to build extensions, instead of learning such details for yourself: https://www.postgresql.org/docs/9.5/static/extend-pgxs.html Or you can crib from one of the extensions in the contrib/ source tree. regards, tom lane