티스토리 뷰
최근에 SQLite를 쓸일이 있어서 여기저기 기웃거리고 있었는데 코드 프로젝트에서 갠춘한 Wrapper Class를 찾아서 쓰고있었다.
근데 64비트??-_-;; 이런;;
여기저기 찾아봐도 미리 컴파일된 dll, lib를 찾기가 힘들다. 헐;; 그래서 기냥 만들려고 참고 자료를 찾아봤는데 흐흐 찾았다
친절하게 다 설명이 되어 있다 ~ 감사합니다 ㅋ 잘쓸게요~
요기있는거 따라하면 기냥 64비트용 바이너리가 튀어 나온다. ㅋ 근데 난 중간에 한번실패-_-; 너무 옛날 .def를 썻더니;ㅋ
최신 .def를 썻더니 내 프로젝트랑 잘 빌드 된다 ㅋ
출처 : http://neodreamer.tistory.com/344
---------------------------------------------------------------------------------------------------------------
얼마전에도 SQLite3.dll 을 만드는 방법에 대한 글을 올린적이 있었는데 그 글을 토대로 만들어진 64 비트용 dll 파일을 사용해 보려 했는데 동작을 하지 않아서 다른 방법을 찾아서 다리 정리를 해 보았다.
이 방법은 이전 방법과 유사하지만 보다 간단하고 정상 독작하는 64비트용 dll 을 만들 수 있다. ^^*
우선 필요한 파일은 아래와 같다.
sqlite-amalgamation-3_6_21.zip
- sqlite3.c
- sqlite3.h
- sqlite3ext.h
sqlitedll-3_6_21.zip
- sqlite3.def
이 작업은 Visual C++ 2005 에서 작업을 하였다.
먼저 Win32 콘솔 프로젝트를 sqlite3 이름으로 생성한다.
프로젝트 생성시 아래와 같이 설정을 한다.
생성된 프로젝트 폴더에 sqlite-amalgamation-3_6_21.zip에 압축된 파일들 과 sqlitedll-3_6_21.zip에 압축된 파일 중 sqlite3.def 파일을 풀어 놓고 프로로젝트에 소스 파일들을 추가 한다.
그리고 전처리기 정의에 아래의 세가지를 추가한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
이를 추가 하지 않으면 아래와 같은 링크 에러가 발생한다.
1>fts3_tokenizer.obj : error LNK2005: _sqlite3_api이(가) fts3.obj에 이미 정의되어 있습니다.
1>rtree.obj : error LNK2005: _sqlite3_extension_init이(가) fts3.obj에 이미 정의되어 있습니다.
1>rtree.obj : error LNK2005: _sqlite3_api이(가) fts3.obj에 이미 정의되어 있습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_database_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_database_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_origin_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_origin_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_table_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_table_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_table_column_metadata 외부 기호를 확인할 수 없습니다.
1>D:\MyProject\VS\sqlite3\Debug\sqlite3.lib : fatal error LNK1120: 7개의 확인할 수 없는 외부 참조입니다.
마지막으로 sqlite3.lib 파일을 생성하기 위해 링크옵션의 모듈 정의 파일(Module Definition File)에 sqlite3.def 를 추가한다.
위와 같은 설정을 Debug 와 Release에 동일하게 해 주고 프로젝트를 빌드하면 Debug 및 Release 폴더에 dll 과 lib 파일을 볼 수 있다.
다음으로 64비트용을 작업한다.
먼저 64비트를 위핸 Configuration 을 추가한다.(Win32 설정으로부터 복사)
생성된 x64 Configuration 에서 전처리기 설정에서 WIN32를 WIN64로 변경한다. (Debug/Release 공통)
이제 빌드만 하면 된다.
근데 64비트??-_-;; 이런;;
여기저기 찾아봐도 미리 컴파일된 dll, lib를 찾기가 힘들다. 헐;; 그래서 기냥 만들려고 참고 자료를 찾아봤는데 흐흐 찾았다
친절하게 다 설명이 되어 있다 ~ 감사합니다 ㅋ 잘쓸게요~
요기있는거 따라하면 기냥 64비트용 바이너리가 튀어 나온다. ㅋ 근데 난 중간에 한번실패-_-; 너무 옛날 .def를 썻더니;ㅋ
최신 .def를 썻더니 내 프로젝트랑 잘 빌드 된다 ㅋ
출처 : http://neodreamer.tistory.com/344
---------------------------------------------------------------------------------------------------------------
얼마전에도 SQLite3.dll 을 만드는 방법에 대한 글을 올린적이 있었는데 그 글을 토대로 만들어진 64 비트용 dll 파일을 사용해 보려 했는데 동작을 하지 않아서 다른 방법을 찾아서 다리 정리를 해 보았다.
이 방법은 이전 방법과 유사하지만 보다 간단하고 정상 독작하는 64비트용 dll 을 만들 수 있다. ^^*
우선 필요한 파일은 아래와 같다.
sqlite-amalgamation-3_6_21.zip
- sqlite3.c
- sqlite3.h
- sqlite3ext.h
sqlitedll-3_6_21.zip
- sqlite3.def
이 작업은 Visual C++ 2005 에서 작업을 하였다.
먼저 Win32 콘솔 프로젝트를 sqlite3 이름으로 생성한다.
프로젝트 생성시 아래와 같이 설정을 한다.
생성된 프로젝트 폴더에 sqlite-amalgamation-3_6_21.zip에 압축된 파일들 과 sqlitedll-3_6_21.zip에 압축된 파일 중 sqlite3.def 파일을 풀어 놓고 프로로젝트에 소스 파일들을 추가 한다.
그리고 전처리기 정의에 아래의 세가지를 추가한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
이를 추가 하지 않으면 아래와 같은 링크 에러가 발생한다.
1>fts3_tokenizer.obj : error LNK2005: _sqlite3_api이(가) fts3.obj에 이미 정의되어 있습니다.
1>rtree.obj : error LNK2005: _sqlite3_extension_init이(가) fts3.obj에 이미 정의되어 있습니다.
1>rtree.obj : error LNK2005: _sqlite3_api이(가) fts3.obj에 이미 정의되어 있습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_database_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_database_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_origin_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_origin_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_table_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_table_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_table_column_metadata 외부 기호를 확인할 수 없습니다.
1>D:\MyProject\VS\sqlite3\Debug\sqlite3.lib : fatal error LNK1120: 7개의 확인할 수 없는 외부 참조입니다.
마지막으로 sqlite3.lib 파일을 생성하기 위해 링크옵션의 모듈 정의 파일(Module Definition File)에 sqlite3.def 를 추가한다.
위와 같은 설정을 Debug 와 Release에 동일하게 해 주고 프로젝트를 빌드하면 Debug 및 Release 폴더에 dll 과 lib 파일을 볼 수 있다.
다음으로 64비트용을 작업한다.
먼저 64비트를 위핸 Configuration 을 추가한다.(Win32 설정으로부터 복사)
생성된 x64 Configuration 에서 전처리기 설정에서 WIN32를 WIN64로 변경한다. (Debug/Release 공통)
이제 빌드만 하면 된다.
'Com이야기 > MFC & Win32API' 카테고리의 다른 글
[MFC] 다이얼로그창에서 Alt +F4나 F1막기 (0) | 2011.03.03 |
---|---|
[MFC] [펌] System권한으로 현재 사용자의 레지스트리 경로 접근하기 (0) | 2011.01.20 |
꼼꼼하게 살펴보자! (0) | 2010.09.29 |