Я хотел бы использовать внешнюю библиотеку, RDFox, в проекте Haskell.Как использовать DLL в проекте Haskell?
Контекст: Я работаю над Windows и Linux, как 64 бит, используя GHC 7.10, так и stack. RDFox запрограммирован на C++. Общие библиотеки RDFox (.dll, .so) могут быть загружены с помощью оболочек Java и Python.
Цель: Я хотел бы повторно использовать скомпилированные библиотеки из RDFox (.dll, .so) в моем проекте в Haskell, так что мне нужно, чтобы создать оболочку для Haskell RDFox.
Вопросы: Будучи относительно новым для Haskell, я с трудом знаю, с чего начать. Я нашел несколько страниц по этому вопросу (из Haskell wiki и StackOverflow), но рабочий процесс и конфигурация мне не понятны.
Вопросы: Я хотел бы знать:
- Как настроить стек и заговорщиков использовать внешнюю библиотеку, чтобы построить на Windows, или Linux (разные машины, то же хранилище).
- Как настроить GHCi для интерактивного тестирования этой внешней библиотеки.
- Является ли перевод оболочки Python на Haskell лучшим способом? Я бы хотел избежать анализа кода RDFox C++.
Сначала вам, вероятно, потребуется создать C-экспортированную оболочку для C++ api. – alternative
Невозможно напрямую создать обертку в Haskell? Я имею в виду, если мне нужно создать обертку C, а затем Haskell, в чем смысл? –
Соглашения об именах в C++ намного сложнее, чем в C. Я не думаю, что FFI поддерживает манипуляции с именами для вещей, отличных от extern-C. – alternative