Execution error in using text-icu on windows

Hi. I worte some code. and fixed some errors with the help of good persons. Now, this utility works properly in Stack environment. How can I install this utility in other computer? This utility use text-icu and I coded this utility on windows. Of course, I want to work this utility on other windows OS. I copied %stackPath%\.stack-work\install\~\bin\samCheceker-exe.exe to some other folder, and execution through CMD. But I got error message that says "libicuuc57.dll dose not exist. so program can't start. please re-install the program." I copied libicuuc57.dll, and so... as like programming newbees, but failed. "stack install" command was the same result. How can I install the Executable File to other windows system? Thank you. Sincerely, S. Chang. ------------------ samChecker.cabal ------------------ name: samChecker3 version: 0.1.0.0 -- synopsis: -- description: homepage: https://github.com/githubuser/samChecker3#readme license: BSD3 license-file: LICENSE author: Author name here maintainer: example@example.com copyright: 2017 Author name here category: Web build-type: Simple extra-source-files: README.md cabal-version: >=1.10 library hs-source-dirs: src exposed-modules: Lib build-depends: base >= 4.7 && < 5 , text , text-icu , bytestring , regex-tdfa default-language: Haskell2010 executable samChecker3-exe hs-source-dirs: app main-is: Main.hs ghc-options: -threaded -rtsopts -with-rtsopts=-N build-depends: base , samChecker3 , text , text-icu , bytestring , regex-tdfa default-language: Haskell2010 test-suite samChecker3-test type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Spec.hs build-depends: base , samChecker3 ghc-options: -threaded -rtsopts -with-rtsopts=-N default-language: Haskell2010 source-repository head type: git location: https://github.com/githubuser/samChecker3 ----------- Main.hs ----------- module Main where import Lib import System.Environment --import System.FilePath.Windows import Data.Text.ICU.Convert -- There is Codec.Text.IConv, too. import qualified Data.Text as T import qualified Data.Text.IO as TIO import qualified Data.ByteString as BS main :: IO () main = do args <- getArgs -- 1st=SAM 2nd=csv conv <- open "MS949" Nothing -- byteSAM :: ByteString --byteSAM <- BS.readFile "C:\\Users\\shaeg\\Documents\\Haskell\\samChecker3\\BoHom.dat" byteSAM <- BS.readFile (args !! 0) -- byteRxDxData :: ByteString --byteRxDxData <- BS.readFile "C:\\Users\\shaeg\\Documents\\Haskell\\samChecker3\\RxDxData.csv" byteRxDxData <- BS.readFile (args !! 1) TIO.putStrLn $ T.concat $ checkRxDxSAM (toUnicode conv byteRxDxData) (toUnicode conv byteSAM) ----------- Lib.hs ----------- module Lib -- ( readSAM -- , readCSV -- , checkRxDxSAM -- ) where where import Data.Text as T import Data.Text.IO as TIO import Data.Text.ICU.Convert import qualified Data.ByteString as BS import Text.Regex.TDFA import Data.Text.ICU as I import Prelude hiding (take, drop, map, lines) type RowSAM = Text type SAM = [Text] type Case = Text type RowRxDx = Text type RxDx = [Text] type RxDxList = [[Text]] type Rx = Text type Dx = Text type MediName = Text type Message = Text type ErrorMessage = Text type Date = Text type PtName = Text checkRxDxSAM :: RowRxDx -> RowSAM -> [ErrorMessage] checkRxDxSAM rxDx sam = [pickupError r s | r <- (makeTuple rxDx), s <- makeSamData sam] makeSamData :: RowSAM -> SAM makeSamData sam = splitIntoCase sam makeTuple :: RowRxDx -> [(Rx, Dx, MediName)] makeTuple rxDx = zip3 (makeRxList rxDx) (makeDxList rxDx) (makeMediNameList rxDx) makeMediNameList :: RowRxDx -> [MediName] makeMediNameList rxDx = fmap pickupMediName $ makeRxDxList rxDx makeDxList :: RowRxDx -> [Dx] makeDxList rxDx = fmap pickupDx $ makeRxDxList rxDx makeRxList :: RowRxDx -> [Rx] makeRxList rxDx = fmap pickupRx $ makeRxDxList rxDx makeRxDxList :: RowRxDx -> RxDxList makeRxDxList rowRxDx = fmap f (lines rowRxDx) where f :: Text -> [Text] f x = splitOn (pack ",") x pickupError :: (Rx, Dx, Message) -> Case -> ErrorMessage pickupError (rxCode, dxCode, errMsg) ptCase = case isErrorRxDx rxCode dxCode ptCase of --True -> append (pickupCaseDate ptCase) $ append (pack " ") $ append (pickupPtName ptCase) $ append (pack " Omit ") $ append dxCode $ append (pack " for ") errMsg True -> append (pickupCaseDate ptCase) $ append (pack " ") $ append (pickupPtName ptCase) $ append (pack " Omit ") $ append dxCode $ append (pack " for ") $ append errMsg (pack "\n") False -> T.empty pickupMediName :: RxDx -> MediName pickupMediName rxDx = rxDx !! 0 pickupDx :: RxDx -> Dx pickupDx rxDx = rxDx !! 2 pickupRx :: RxDx -> Rx pickupRx rxDx = rxDx !! 1 pickupPtName :: Case -> PtName pickupPtName ptCase = take 3 $ drop 45 ptCase pickupCaseDate :: Case -> Date pickupCaseDate ptCase = take 8 $ drop (348 + 2) ptCase isErrorRxDx :: Rx -> Dx -> Case -> Bool isErrorRxDx rxCode dxCode ptCase = case isExistRx rxCode ptCase of True -> if (isExistDx dxCode ptCase) then False else True False -> False isExistDx :: Dx -> Case -> Bool --isExistDx dxCode ptCase = (unpack ptCase) =~ (unpack dxCode) isExistDx dxCode ptCase = case (I.find (regex [] dxCode) ptCase) of Just x -> True Nothing -> False isExistRx :: Rx -> Case -> Bool isExistRx rxCode ptCase = rxCode `isInfixOf` ptCase splitIntoCase :: RowSAM -> SAM splitIntoCase = splitOn $ pack "AH021" --readCSV :: IO Text --readCSV = pack <$> readFile "/Users/shaegis/Documents/Haskell/samChecker3/RxDxData.csv" --readSAM:: IO Text --readSAM = pack <$> readFile "/Users/shaegis/Documents/Haskell/samChecker3/BoHomUTF8.dat"

On Sat, Mar 04, 2017 at 08:57:02AM +0900, S. H. Aegis wrote:
Hi.
I worte some code. and fixed some errors with the help of good persons. Now, this utility works properly in Stack environment. How can I install this utility in other computer? This utility use text-icu and I coded this utility on windows. Of course, I want to work this utility on other windows OS.
I copied %stackPath%\.stack-work\install\~\bin\samCheceker-exe.exe to some other folder, and execution through CMD. But I got error message that says "libicuuc57.dll dose not exist. so program can't start. please re-install the program." I copied libicuuc57.dll, and so... as like programming newbees, but failed. "stack install" command was the same result.
How can I install the Executable File to other windows system?
Hello, maybe you can try compiling with: stack build --ghc-options '-static -optl-static' (and stack clean before, probably). I am not a windows or stack user, so this I cannot test this. Report back and let us know if it worked or not.

Thank you so much, Francesco Ariis.
Thanks to your help, I stepped foreword.
But I got following error message. I googled this error message & try to
fix this, but faild.
How can I fix or get info. for this error message?
Thank you so much.
C:\Users\shaeg\Documents\Haskell\samChecker3> stack build
--ghc-options="-static -optl-static"
Warning: File listed in samChecker3.cabal file does not exist: README.md
samChecker3-0.1.0.0: unregistering (local file changes: app\Main.hs
samChecker3.cabal src\Lib.hs test\Spec.hs)
samChecker3-0.1.0.0: configure (lib + exe)
Configuring samChecker3-0.1.0.0...
samChecker3-0.1.0.0: build (lib + exe)
Preprocessing library samChecker3-0.1.0.0...
[1 of 1] Compiling Lib ( src\Lib.hs,
.stack-work\dist\ca59d0ab\build\Lib.o )
Preprocessing executable 'samChecker3-exe' for samChecker3-0.1.0.0...
[1 of 1] Compiling Main ( app\Main.hs,
.stack-work\dist\ca59d0ab\build\samChecker3-exe\samChecker3-exe-tmp\Main.o )
Linking .stack-work\dist\ca59d0ab\build\samChecker3-exe\samChecker3-exe.exe
...
C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ghc-8.0.2/mingw/bin/ld.exe:
cannot find -licuuc
C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ghc-8.0.2/mingw/bin/ld.exe:
cannot find -licuin
C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ghc-8.0.2/mingw/bin/ld.exe:
cannot find -licudt
collect2.exe: error: ld returned 1 exit status
`gcc.exe' failed in phase `Linker'. (Exit code: 1)
Warning: File listed in samChecker3.cabal file does not exist: README.md
-- While building package samChecker3-0.1.0.0 using:
C:\sr\setup-exe-cache\x86_64-windows\Cabal-simple_Z6RU0evB_1.24.2.0_ghc-8.0.2.exe
--builddir=.stack-work\dist\ca59d0ab build lib:samChecker3
exe:samChecker3-exe --ghc-options " -ddump-hi -ddump-to-file"
Process exited with code: ExitFailure 1
2017-03-04 16:12 GMT+09:00 Francesco Ariis
On Sat, Mar 04, 2017 at 08:57:02AM +0900, S. H. Aegis wrote:
Hi.
I worte some code. and fixed some errors with the help of good persons. Now, this utility works properly in Stack environment. How can I install this utility in other computer? This utility use text-icu and I coded this utility on windows. Of course, I want to work this utility on other windows OS.
I copied %stackPath%\.stack-work\install\~\bin\samCheceker-exe.exe to some other folder, and execution through CMD. But I got error message that says "libicuuc57.dll dose not exist. so program can't start. please re-install the program." I copied libicuuc57.dll, and so... as like programming newbees, but failed. "stack install" command was the same result.
How can I install the Executable File to other windows system?
Hello, maybe you can try compiling with:
stack build --ghc-options '-static -optl-static'
(and stack clean before, probably).
I am not a windows or stack user, so this I cannot test this. Report back and let us know if it worked or not. _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
-- Sok Ha, CHANG Dr. Chang's Clinic. #203. 503-23. AmSa-Dong, GangDong-Gu, Seoul. Tel: +82-2-442-7585

On Sat, Mar 04, 2017 at 10:05:27PM +0900, S. H. Aegis wrote:
Thank you so much, Francesco Ariis. Thanks to your help, I stepped foreword.
But I got following error message. I googled this error message & try to fix this, but faild. How can I fix or get info. for this error message? Thank you so much.
[...]
Linking .stack-work\dist\ca59d0ab\build\samChecker3-exe\samChecker3-exe.exe ... C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ghc-8.0.2/mingw/bin/ld.exe: cannot find -licuuc C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ghc-8.0.2/mingw/bin/ld.exe: cannot find -licuin C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ghc-8.0.2/mingw/bin/ld.exe: cannot find -licudt collect2.exe: error: ld returned 1 exit status `gcc.exe' failed in phase `Linker'. (Exit code: 1)
[...]
Argh, that's the linker acting up. I haven't been using windows in 10 years, but is LIBRARY_PATH defined on your system? And if so, where is it pointing? Its value should be where the .a/.lib files are located (in your particular example, icudt.lib, etc.). Again, not a windows nor a stack user, so maybe you want to wait for more answers and/or ask on haskell-stack@googlegroups.com too -F

Thank you so much, Francesco Ariis.
[stack path] results
extra-include-dirs:
C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\include
extra-library-dirs:
C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib
According to first error message(libicuuc57.dll dose not exist. so program
can't start. please re-install the program.), I find the path for
libicuuc57.dll, and re-set the extra-library-dirs.
C:\Users\shaeg\Documents\Haskell\samChecker3>stack build
--extra-lib-dirs=C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\bin
--ghc-options="-static -optl-static"
But got the same result.
How can I fix this?
Thank you.
Sincerely, S. Chang.
Here is my stack path.
C:\Users\shaeg\Documents\Haskell\samChecker3>stack path
stack-root: C:\sr
project-root: C:\Users\shaeg\Documents\Haskell\samChecker3
config-location: C:\Users\shaeg\Documents\Haskell\samChecker3\stack.yaml
bin-path:
.;C:\sr\snapshots\7dd4ddea\bin;C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2\bin;C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2\mingw\bin;C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\bin;C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\usr\bin;C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\usr\local\bin;C:\Program
Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS
Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program
Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
(x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program
Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program
Files\Intel\IntelSGXPSW\bin\x64\Release\;C:\Program
Files\Intel\IntelSGXPSW\bin\win32\Release\;c:\Program
Files\Intel\WiFi\bin\;c:\Program Files\Common
Files\Intel\WirelessCommon\;C:\Program
Files\Hewlett-Packard\SimplePass\;C:\Users\shaeg\AppData\Roaming\local\bin;C:\Users\shaeg\AppData\Local\Microsoft\WindowsApps
programs: C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows
compiler-exe:
C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2\bin\ghc.EXE
compiler-bin:
C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2\bin
local-bin: C:\Users\shaeg\AppData\Roaming\local\bin
extra-include-dirs:
C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\include
extra-library-dirs:
C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib
snapshot-pkg-db: C:\sr\snapshots\7dd4ddea\pkgdb
local-pkg-db:
C:\Users\shaeg\Documents\Haskell\samChecker3\.stack-work\install\02136e14\pkgdb
global-pkg-db:
C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2\lib\package.conf.d
ghc-package-path:
C:\Users\shaeg\Documents\Haskell\samChecker3\.stack-work\install\02136e14\pkgdb;C:\sr\snapshots\7dd4ddea\pkgdb;C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2\lib\package.conf.d
snapshot-install-root: C:\sr\snapshots\7dd4ddea
local-install-root:
C:\Users\shaeg\Documents\Haskell\samChecker3\.stack-work\install\02136e14
snapshot-doc-root: C:\sr\snapshots\7dd4ddea\doc
local-doc-root:
C:\Users\shaeg\Documents\Haskell\samChecker3\.stack-work\install\02136e14\doc
dist-dir: .stack-work\dist\ca59d0ab
local-hpc-root:
C:\Users\shaeg\Documents\Haskell\samChecker3\.stack-work\install\02136e14\hpc
local-bin-path: C:\Users\shaeg\AppData\Roaming\local\bin
ghc-paths: C:\Users\shaeg\AppData\Local\Programs\stack\x86_64-windows
2017-03-04 23:10 GMT+09:00 Francesco Ariis
On Sat, Mar 04, 2017 at 10:05:27PM +0900, S. H. Aegis wrote:
Thank you so much, Francesco Ariis. Thanks to your help, I stepped foreword.
But I got following error message. I googled this error message & try to fix this, but faild. How can I fix or get info. for this error message? Thank you so much.
[...]
Linking .stack-work\dist\ca59d0ab\build\samChecker3-exe\ samChecker3-exe.exe ... C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ ghc-8.0.2/mingw/bin/ld.exe: cannot find -licuuc C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ ghc-8.0.2/mingw/bin/ld.exe: cannot find -licuin C:/Users/shaeg/AppData/Local/Programs/stack/x86_64-windows/ ghc-8.0.2/mingw/bin/ld.exe: cannot find -licudt collect2.exe: error: ld returned 1 exit status `gcc.exe' failed in phase `Linker'. (Exit code: 1)
[...]
Argh, that's the linker acting up. I haven't been using windows in 10 years, but is LIBRARY_PATH defined on your system? And if so, where is it pointing? Its value should be where the .a/.lib files are located (in your particular example, icudt.lib, etc.).
Again, not a windows nor a stack user, so maybe you want to wait for more answers and/or ask on haskell-stack@googlegroups.com too -F _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
participants (2)
-
Francesco Ariis
-
S. H. Aegis