Jump to content
BulForum.com

Проблем с firebird и външни UDF от .so файлове


mIRCata

Recommended Posts

Имам следния проблем - искам да накарам една база данни за firebird да изпълнява UDF-и, които аз съм написал. Тези функции го чете от .so файлове. Направих мяколко опита и получавам все единия от следните два резултата :

1 Access to UDF library "libudf.so" is denied by server administrator

2 finvalid request BLR at offset 83.function xxx is not defined.module name or entrypoint could not be found

 

първо компилирам

gcc -fPIC -g -c -Wall udf.cpp

- прочетох, че така се компилира за създаване на shared libraly с позиционно независим код, който се изисква за тези модули.

 

за момента установих, че двете грешки се появвяват в зависимост от това как компилирам след това .so файла

1 се получава след като компилирам с :

gcc -shared -Wl,-soname udf.so.1 -o udf.so.1.0 -lc

2 без да давам версия на модула:

gcc -shared -Wl,-soname udf.so -o udf.so -lc

 

В Интернет навсякъде където намерих първата грешка дават, че е вследствие на настройките на самия firebird как да работи с UDF. Ако е зададно UdfAccess = Restrict UDF това казва да се ползват файлове разположени само в разрешени директории. Аз копирах моя .sо файл в директорията на UDF файловете на самия firebird(/opt/firebird/UDF/), рестартирам сървъра и пак ми дава тази грешка. Преименувах модул на firebird, зададох да се ползва функция от него и тръгна, от което си вадя заключение, че ограничението за директориите с модули си работи. С моите модули не иска. Дали аз бъркам самото компилиране или има нещо друго?? Има ли изисквания за декларирането на самите функции когато пиша кода? Защото гледах пример в сайта на Intel и там кода си го написаха директно без някакви специални думи в декларацийте. Някой може ли да помогне, да каже къде бъркам.

Още едно нещо ми направи впечатление. Като отворя с mcedit двата модула моя и на firebird на моя пише :not stripped, a на модулите на firebird stripped. Не знам дали е от значение, но все пак да го пиша.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...