Подтвердить что ты не робот

Как получить текстовый файл icq в Windows?

Мне удалось установить text-icu без ошибок. (Я использовал --extra-lib-dirs и --extra-include-dirs для указания на каталоги lib и include в двоичном дистрибутиве icu4c.)

Я также смог создать следующую простую программу, которая использует text-icu, выполнив ghc --make icu.hs:

-- icu.hs
import Data.Text.ICU
main = print $ Locale "tr-TR"

Никаких ошибок и предупреждений ни на одном из этих шагов. Но когда я пытаюсь запустить скомпилированную программу, icu.exe, я не получаю никакого вывода. Я ожидал получить строку с Locale "tr-TR", но вместо этого я ничего не получаю - даже не ошибка или предупреждение. Это остается в том случае, если я попробую

main = do
  print $ Locale "tr-TR"
  print "Done"

поэтому использование материала text-icu, по-видимому, приводит к сбою программы. echo $? дает False.

У кого-нибудь есть text-icu и работает в Windows? Можете ли вы сказать мне, что я делаю неправильно?

4b9b3361

Ответ 1

Stack включает в себя копию msys2 в Windows, которая содержит диспетчер пакетов pacman, поэтому мы можем запустить:

stack exec -- pacman -Sy mingw64/mingw-w64-x86_64-icu
stack build text-icu

Ответ 2

Мне это удалось:

  • Загрузите двоичные файлы из http://site.icu-project.org/download/56#TOC-ICU4C-Download, в частности http://download.icu-project.org/files/icu4c/56.1/icu4c-56_1-Win32-msvc10.zip.
  • Извлеките содержимое icu/bin в каталог C:\bin, который находится на моем %PATH%. Извлеките содержимое icu в каталог C:\bin\icu.
  • Используйте Stack для запуска stack ghci text-icu --extra-lib-dirs=c:\bin --extra-include-dirs=c:\bin\icu\include.
  • В GHCi запустите import Data.Text.ICU.Normalize, затем :set -XOverloadedStrings, затем normalize None "test".
  • Для каждой DLL, о которой сообщается, не может быть найдена, например. icuuc.dll, возьмите C:\bin\icuuc56.dll и сделайте копию в C:\bin\icuuc.dll. Для меня было три соответствующие DLL.

После всего этого я могу нормализовать строку в ghci.

Ответ 3

Именно так окна реагируют на отсутствующую статическую зависимость. Когда операционная система запускает процесс, он ищет статические зависимости. Если этого не хватает, программа не запускается.

Используйте параметр depend.exe, чтобы узнать, какой импорт отсутствует. Это может быть недостающая dll или неверная версия.

Зависимости доступны с помощью  1. Visual Studio  2. Платформа Microsoft Platform SDK  3. Другие пакеты microsoft  4. http://www.dependencywalker.com

Это довольно незаменимо при отслеживании того, что происходит в этом случае.

Ответ 4

вы должны проверить, нет ли какой-либо DLL, отсутствующей в cygcheck.check, и переменные окружения Windows тоже с правильной. Или попробуйте переустановить следующую процедуру haskell.

http://www.haskell.org/haskellwiki/Windows#Tools_for_compilation

удача