Я пытаюсь создать разделяемую библиотеку из исходного кода на Haskell.
Я пытался следовать приведенной здесь инструкции: http://weblog.haskell.cz/pivnik/building-a-shared-library-in-haskell/, но мне просто не повезло.
Когда я компилирую с Haskell 64-bit (ghc 7.0.4 из 2011.4.0.0), я получаю следующую ошибку:
ld: pointer in read-only segment not allowed in slidable image, used in
___gmpn_modexact_1c_odd
В качестве альтернативы я также попробовал 32-битную версию, ив зависимости от точных флагов, которые я использую для ссылки, получаю ошибки, такие как:
Library not loaded: /usr/local/lib/ghc-7.0.4/base-4.3.1.0/libHSbase-4.3.1.0-ghc7.0.4.dylib
Мне удалось продвинуться немного дальше, добавив -lHSrts в строку компоновщика.Это дало мне возможность успешно связать и загрузить библиотеку, но я не смог найти имя функции, используя dlsym (или вручную, используя nm | grep)
Любые подсказки будут с благодарностью, примерБудем благодарны за создание файла или строку сборки, которая успешно создала (и использовала) разделяемую библиотеку в OS X.Я довольно новичок в Haskell и не знаю, должен ли я продолжать биться головой, предполагая, что проблема на моем конце, или по разным причинам я не должен ожидать, что это сработает на OS X.
Репозиторий git со всеми опробованными мною комбинациями доступен здесь: https://github.com/bennoleslie/haskell-shared-example Мне удалось получить что-то работающее для 32-битного ghc, но пока не для 64-битного.