Graphics Programming

윈도우즈에서 sqlite3 라이브러리 설치하기 본문

Season 1/하스켈

윈도우즈에서 sqlite3 라이브러리 설치하기

minseoklee 2017. 3. 2. 11:28

윈도우즈용 GHC와 cabal을 설치하고, cabal을 통해서 sqlite3 라이브러리를 설치하려고 다음 명령을 실행하면


cabal install HDBC-sqlite3


missing C library: sqlite3 가 포함된 오류 메시지가 뜨면서 설치가 실패할 것이다. c로 작성된 sqlite3 소스 코드가 필요하기 때문이다. 다음과 같은 절차를 밟아서 해결할 수 있다.


1. hdbc-sqlite3를 설치하려면 이러이러한 선행 라이브러리가 필요하다고 오류 메시지가 뜰 수 있다. 나의 경우 utf8-string 라이브러리와 hdbc 라이브러리를 설치하라고 떴다. 이것들은 그냥 cabal install utf8-string / cabal install hdbc 를 실행하면 설치된다.


2. sqlite3 홈페이지로 가서 소스 코드(sqlite-amalgamation-xxx.zip)와 윈도우즈용 바이너리(sqlite-dll-win32-x86-xxx.zip)를 내려받는다.


3. 띄어쓰기가 없는 경로에 함께 압축을 푼다. 나는 D:\haskell 폴더를 만들고 이 폴더에 넣었다.


4. cabal을 실행할 때 이 경로를 포함하여 빌드하도록 한다.


cabal install HDBC-sqlite3 --extra-lib-dirs="D:\haskell" --extra-include-dirs="D:\haskell"


----


아니.. GHCi에서 인터프리터 모드로 실행하면 문제 없는데 ghc로 컴파일하려고 하면 다음 오류가 발생한다.


*Main Database.HDBC Database.HDBC.Sqlite3> :! ghc --make "test.hs"

Linking test.exe ...

C:/Program Files/Haskell Platform/2014.2.0.0/mingw/bin/ld.exe: cannot find -lsqlite3

collect2: ld returned 1 exit status


해결하고 수정하겠음.. ㅡㅜ


[2017-03-02] 오늘 다시 해봤는데 컴파일 잘 된다. cabal install HDBC-sqlite3 ~~을 실행할 때 윈도우즈의 cmd를 썼다면 configure 스크립트를 포함해서 cygwin이나 mingw를 써야 한다는 경고 로그가 출력될 것이다. 따로 깔기는 귀찮고, 내가 마침 git for windows를 쓰기 때문에 git bash에서 cabal install을 실행하여 성공적으로 설치했다.


컴파일 결과물을 실행할 때는 sqlite3.dll이 실행 파일과 같은 디렉토리에 있거나 system32 폴더에 있어야 한다.


----



Comments