Quantcast

Execution error in using text-icu on windows

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Execution error in using text-icu on windows

Sok H. Chang
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:          [hidden email]
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"



_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Execution error in using text-icu on windows

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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Execution error in using text-icu on windows

Sok H. Chang
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 <[hidden email]>:
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
[hidden email]
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

_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Execution error in using text-icu on windows

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 [hidden email] too
-F
_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Execution error in using text-icu on windows

Sok H. Chang
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 <[hidden email]>:
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 [hidden email] too
-F
_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
Loading...