Building DLL in GHC

Nov 05, 2009 23:17

По умолчанию GHC не умеет собирать нормальный DLL под Windows (как с этим в других системах, я не знаю). Поэтому я написал для себя модуль (код ужасен, я знаю, я взял половину из туториала, половину наваял на скорую руку и вынес, лишь бы оно собирало мой код), для которого достаточно определить дополнительный раздел в CABAL - x-export, внутри ( Read more... )

tips, fp, haskell

Leave a comment

Comments 5

nealar March 1 2010, 07:33:05 UTC
То есть, как - не умеет собирать DLL? А ключик -dll и раздел в GHC-доке на что?
А вот если ты подружил кабалу с DLL - то честь тебе и хвала и я тоже хочу научиться этим пользоваться.

Reply

voidex March 1 2010, 12:27:59 UTC
Сам dll он собирает, но не выдаёт lib, плюс для этого ключика необходимо передавать ещё и сишник, который надо писать руками (в тех же доках об этом есть).

У меня сделана (на данный момент) генерация заголовочника с функциями initialize/shutdown и C++ RAII обёрткой для них же, и генерация lib-файла по dll-ке.

Если нужно, то как будет время выложу тулзы для генерации lib'ы, обновленный модуль и пример cabal'а с setup.hs.

lib'у я генерировал для студийного компилятора. Правильнее, видимо, будет завести ещё какой-нибудь ключ, потому что lib'а нужна не всегда.

Так как писал я для себя, наверняка есть недоработки.

Reply

nponeccop May 4 2012, 08:45:03 UTC
т.е. из msvc32 можно вызывать Хаскел? Мне бы найти способ для msvc64

А вы не смотрели на cabal install hdirect? В последний раз когда я проверял он был мертв, а теперь стараниями нашего мегапродуктивного Саймона - жив, хоть и апдейтился 2 года назад в последний раз.

Reply

voidex May 4 2012, 10:05:20 UTC
Ко мне можно на ты.

Из MSVC32 можно, да. С x64, как я понимаю, всё печально, GHC под виндой его не умеет.
hdirect не смотрел.

Reply


Leave a comment

Up