예전 글에서는 Dll 은 amalgamation 소스를 이용하고 정적 라이브러리는 전체 소스를 가지고 만드는 방법을 기록하였는데 이번에는 두가지 모두 amalgamation 소스를 이용하는 방법으로 하여 보았다. 이 방법을 이용할 경우 작업이 무척 간단하고 ICU 모듈 없이도 라이브러리를 만들 수 있다.

일단 Dll 을 만드는 방법은 예전 글(2009/12/09 - [Dev Story/Tips] - SQLite3.dll 만들기 (Win32 & x64 with VC++ 2005))에도 설명을 하였지만 다시금 간단하게 요약을 하면 Win32 Application 을 "SQLite3"란 이름으로 만들고 Wizard 화면에서 아래와 같이 Type을 DLL, Additional options에서 Empty project를 체크하고 프로젝트를 만든다.
SQLite3.dll 프로젝트 속성

SQLite3.dll 프로젝트 속성


프로젝트에 sqlite-amalgamation-xxxxxxxx.zip 파일에 있는 sqlite3.c, sqlite3.h, sqlite3ext.h 파일을 프로젝트에 포함시켜 준다. 그리고 Preprocessor Definitions에 아래 세가지를 입력한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA


마지막으로 sqlite-dll-win32-x86- xxxxxxxx.zip 파일에 포함되어 있는 sqlite3.def 파일을 프로젝트에 속성에 추가 시켜준다.
sqlite3.def 지정 화면

sqlite3.def 지정 화면


이제 빌드만 해 주면 .dll 파일과 .lib 파일을 얻을 수 있다. 필요에 따라 x64 platform 을 추가 구성하면 64비트용 파일들을 얻을 수 있다.

다음으로 정적 라이브러리를 만드는 방법이다. 기존 방법과는 다르고 DLL 파일을 만드는 것과 유사하다.
우선 Win32 Application을 SQLite3Static 이란 이름으로 type을 Static library, Additional options에서 Precompiled header를 선택 해제하고 프로젝트를 생성한다.

DLL 만드는 경우와 같이 프로젝트에 sqlite-amalgamation-xxxxxxxx.zip 파일에 있는 sqlite3.c, sqlite3.h, sqlite3ext.h 파일을 프로젝트에 포함시켜 준다. 그리고 Preprocessor Definitions에 아래 세가지를 입력한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA

이제 빌드만 하면 정적 라이브러리를 만들 수 있다. 역시 x64 platform 을 추가 구성하면 64비트용 파일들을 얻을 수 있다. 그리고 각각의  x64 platform 과 Configuration에 맞게 정적 라이브러리 이름을 지정하면 쉽게 구분할 수 있다.
본인의 경우 아래와 같이 이름을 지정하였다.
x86용
Debug: SQLite3Static32D.lib 
Release: SQLite3Static32.lib 
x64용
Debug: SQLite3Static64D.lib 
Release: SQLite3Static64.lib 

위의 작업은 Visual Studio 2005에서 작업을 하였으며 정적 라이브러리의 경우 Visual Studio 2010 버전으로 테스트해 보았다.

'Dev Story' 카테고리의 다른 글

C#에서 SQLite 사용하기  (2) 2011.10.14
Firebird 2.5.1 Release  (0) 2011.10.13
.Net 을 위한 SQLite 라이브러리  (0) 2011.10.11
MS Windows 8 공개!!  (0) 2011.09.14
RAD Studio IDE Fix Pack 4.4 released  (0) 2011.08.29
Posted by NeoDreamer
:
BLOG main image
사람의 발목을 잡는건 '절망'이 아니라 '체념'이고 앞으로 나아가게 하는건 '희망'이 아니라 '의지'다. - 암스 중에서 - by NeoDreamer

공지사항

카테고리

전체보기 (793)
Life Story (1)
Thinking (2)
Nothing (5)
---------------* (0)
Dev Story (701)
Com. Story (80)
IT Story (1)
---------------+ (0)
Etc (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :
05-03 18:18