Включение исходных текстов C ++ в проект на Haskell

Я пытаюсь создать структуру данных, которая будет представлена ​​в Haskell, но реализована в C ++. Пока я реализовал это в .cpp файл, объявлены все нужные мне функции как extern "C" и добавил исходный файл в c-sources поле в .cabal файл. Когда я строю проект (в данном случае с stack buildКажется, что это нормально.

Я знаю, что это делает что-то в файл C ++, потому что он не компилируется, если есть ошибки.

Я еще не попробовал запустить проект, потому что это библиотека, и пока на ней не написано ничего «работоспособного», но repl, похоже, не работает.

Когда я пытаюсь запустить его (stack repl в этом случае) Я получаю ошибку отсутствующего символа с искаженным именем, которое может относиться или не относиться к имени в моем файле.

unknown symbol `_ZdlPv'
linking extra libraries/objects failed

Как я могу исправить эту проблему? У меня была похожая проблема до того, как я ее исправил, вручную скомпилировав исходный код в динамическую библиотеку, а затем использовал эту библиотеку в своем проекте. Я не хочу этого делать, поскольку это связывает меня с платформой, и поскольку нет никакого смысла в том, что простой C ++ не может быть скомпилирован с проектом с использованием инструментов, которые уже есть в GHC. Я хочу иметь возможность поставить это на взлом.

Я что-то упускаю? Если нет, то это ошибка и есть ли планы по ее устранению?

5

Решение

Ладно, мне удалось исправить это сейчас.

Я добавил extra-libraries: stdc++-6, gcc_s_seh-1 в мой файл клики, и теперь это работает. Не знаю, зависит ли это от платформы, но эти библиотеки поставляются с GHC, когда я устанавливаю его через стек.

2

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector