Я пытаюсь создать общую библиотеку с компилятором gcc на hp-ux. Я использую эти команды:
Все компилируется без предупреждений или ошибок, но когда я пытаюсь использовать эту библиотеку, я получаю сообщение об ошибке:
ОШИБКА: ошибка загрузки расширения: ошибка ОС: -1 (‘path_to_lib‘не является допустимым модулем загрузки: неверное магическое число).
ОШИБКА: невозможно загрузить расширение 🙁path_to_lib).
ОШИБКА: ошибка загрузки расширения: ошибка ОС: -1 (‘path_to_lib‘не является допустимым модулем загрузки: неверное магическое число)
Вы знаете, что именно означает эта ошибка? Как это исправить?
Редакция:
Я использую свою общую библиотеку в программе SAS следующим образом:
proc proto package =work.myfuncs.tests;
link "/home/my_library.so";
int test(int x);
run;
Я наконец решил свою проблему. Мне пришлось создать библиотеку как 64-битную библиотеку с опцией gcc -mlp64
потому что программное обеспечение SAS было 64 бит. Тем не менее, я до сих пор не знаю, почему proc proto
корректно работал на LINUX, потому что там тоже программное обеспечение SAS 64b. Может быть, это было что-то с другой установкой gcc в этих двух средах.