Как создать общую библиотеку с gcc в hp-ux?

Я пытаюсь создать общую библиотеку с компилятором gcc на hp-ux. Я использую эти команды:

  1. gcc -Wall -fPIC -std = gnu99 -c * .c
  2. gcc -shared -Wl -o my_library.so * .o

Все компилируется без предупреждений или ошибок, но когда я пытаюсь использовать эту библиотеку, я получаю сообщение об ошибке:

ОШИБКА: ошибка загрузки расширения: ошибка ОС: -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;

1

Решение

Я наконец решил свою проблему. Мне пришлось создать библиотеку как 64-битную библиотеку с опцией gcc -mlp64потому что программное обеспечение SAS было 64 бит. Тем не менее, я до сих пор не знаю, почему proc proto корректно работал на LINUX, потому что там тоже программное обеспечение SAS 64b. Может быть, это было что-то с другой установкой gcc в этих двух средах.

0

Другие решения


По вопросам рекламы [email protected]