2010-12-04 3 views
3

Windows에서 SQLCite를 사용하여 SQLite를 컴파일하기위한 자습서는 this입니다. 나는 편집을위한 선결 조건에 대해 혼란 스럽다.Windows에서 SQLCite를 사용하여 SQLite를 컴파일하십시오.

  1. OpenSSL을
  2. 는 MinGW
  3. 은 ActiveState 펄
  4. TclTk/tclsh
  5. MSYS
  6. 비주얼 스튜디오
  7. Cygwin에서
: 나는 그것을 컴파일하려면 다음을 설치해야합니다 발견

위에서 Visual Studio 2008을 설치했습니다. Windows 7에서 작업하고 있습니다.

Windows에서 SQLite를 사용하여 SQLite를 컴파일하기위한 정확한 전제 조건은 무엇입니까?

답변

4

Windows에서 SQLCipher을 컴파일해야 할 최소한의 설정은 다음과 같습니다

  1. OpenSSL을,
  2. 형태의 펄 중 소스 또는 바이너리 - 당신은 OpenSSL을
  3. 을 구축 할 경우 선택 사항 만 필요
  4. 는 MinGW/MSYS - SQLCipher
  5. 은 Tcl을 구성하는 데 필요한 - 합병 코드를
  6. 비주얼 스튜디오를 구축하기 위해 SQLite는 빌드 시스템에서 요구 - 프로젝트를 빌드 할

스레드의 단계를 사용하여 직접 DLL을 만들거나 프로젝트에 포함 할 합병을 생성 할 수 있습니다.

모든 단계와 시간을 저장하려면 적은 비용으로 http://sqlcipher.net/downloads 웹 사이트에서 사전 컴파일 된 SQLCipher 창 바이너리를 가져올 수 있습니다. 이러한 바이너리 판매는 고객이보다 신속하게 일할 수있게 도와주고 프로젝트 지원을 도울 수 있기 때문에 상호 이익이됩니다.

+4

* SMALL * charge? 500 달러는 작지 않습니다! – Michael

3

SQLCipher는 SQLite 소스 + 수정 사항을 빠른 모양으로 판단하여 배포되는 것처럼 보입니다. "amalgation"보다는 다중 파일 버전입니다. 따라서 SQLite 소스를 빌드 할 수있는 환경이 필요합니다. 이는 유닉스 앱을 의미합니다.

개인적으로 필자는 SQLCipher 소스 아카이브와 SQLite 버전 (SQLite 버전 3.7.2, 버전 파일로 판단)을 포함하는 SQLite 버전과의 차이점을 알고 싶습니다. 어떤 수정이 소스 SQLite 파일뿐만 아니라 SQLCipher에 특정한 목록 파일에 수행됩니다.

수동으로 OpenSSL을 작성하는 번거 로움을 피하려면 Perl 종속성을 제거하는 미리 작성된 버전을 가져올 수 있습니다 (iirc OpenSSL은 Visual C++로 잘 작성되므로 MingW는 종속성이 없어야 함).

SQLCipher 작성자가 의도적으로 자신의 특정 코드 부분을 SQLite 까다로운 것으로 분리하지 않은 경우 (Win32 바이너리를 판매 할 때 약간의 돈이 들어갈 수 있음) 그의 변경 사항을 SQLite 통합 버전 및 미리 작성된 OpenSSL 바이너리와 결합하면 Visual Studio 솔루션에서 정말 쉽게 드롭 인 (drop-in) 할 수 있습니다.

물론 새로운 버전의 SQLCipher로 업그레이드하고 싶다면 추출 단계를 거쳐야하지만, 실제로는 Cygwin 개발 환경을 설치하고 싶지 않으면 그만한 가치가 있습니다. 이 단일 라이브러리를 만들 수 있습니다. 단계 shouldn를 컴파일 이후

양자 택일로, 당신은 'A *의 U * X 박스에 SQLCipher의 구성 단계 (즉, 인 리눅스 여부, * BSD 또는 맥 OS X 쉘) 할 수있을 것 모든 펑키 도구가 필요합니다.

UPDATE : I는 조사

(버전 3.7.2)를 SQLCipher 1.1.8 분배 대해 DIFF 도망 [http://www.sqlite.org/src/info/42537b6056] 및 SQLite는, 전용을 사용하는 SQLCipher을 기반으로 새로운 것을 구축 -, 그냥 AES 암호화 지원을받을에는 OpenSSL에 대한 종속성을 꽤 잔인한 것 또한

 
Makefile.in - references added for the new crypto files. 
tool/mksqlite3c.tcl: references added for the new crypto files. 
src/pragma.c - one added block, marked /** BEGIN_CRYPTO **/ 
src/pager.c - one added block, marked /** BEGIN_CRYPTO **/ 
src/crypto.h - new file. 
src/crypto.c - new file.

: 수정 된 부분을 추출하기 위해 꽤 합리적인 작업처럼 보인다 (그리고 훨씬 더 작은) AES 패키지가 더 좋을 것입니다.

+0

어딘가에 (http://zetetic.net/blog/2009/12/28/improvements-to-sqlcipher---cross-platform-sqlite-encryption/)이 코드를 컴파일하는 비주얼 스튜디오 프로젝트가 있음을 읽었습니다. . 누구든지 그 vnet 솔루션을 가지고 있습니까? –

+0

http://groups.google.com/group/sqlcipher/browse_thread/thread/55c6296b56bf4533/0781135c6cc47dc7?#0781135c6cc47dc7 –

+4

@Stephen Lombardo : 공정한 점 - 제 의견을 "모욕적 인"의견으로 받아들이지 마십시오. , 나는 그것을하는 것이 꽤 공정한 일이라고 생각한다. 비록 수시로 가난한 Windows 개발자들이 고통스럽게 끝내는 것은 수치 스럽다고 생각한다. :) – snemarch

관련 문제