VC++ 프로젝트 에서 SQLite 소스 직접 포함 시켜 활용하기.
SQLite 다운로드
https://sqlite.org/download.html 에서 sqlite-amalgamation-3510000.zip (2025년 11월 최신 버전 : 3.51.0):
상기 파일 다운로드 압축 해제하여 3개의 파일 sqlite3.c, sqlite3.h, sqlit3ext.h 를 프로젝트에 추가한다.
프로젝트에 추가방법
솔루션 탐색기 → Source Files → 우클릭 → Add → Existing Item → sqlite3.c
솔루션 탐색기 → Header Files → Add → Existing Item → sqlite3.h, sqlite3ext.h
추가 설정
설정1 . 프로젝트에서 sqlite3.c 만 PCH(미리 컴파일된 헤더. pch.h ) 사용 안 하도록 설정
- 솔루션 탐색기 → sqlite3.c 선택
- 우클릭 → Properties
- C/C++ → Precompiled Headers → Precompiled Header → Not Using Precompiled Headers 로 변경
- OK

위와같이 설정하면 전체 프로젝트는 PCH 계속 쓰지만, sqlite3.c만 예외 처리되어 컴파일시 오류 발생 안함.
참고 : Sqlite 에 pch.h 인클루드 시키면 안되는 이유,
SQLite는 C89호환 단일 파일로 되어 있고 컴파일러 설정에 매우 민감한데, pch.h 를 include 시킬 경우:
- 정의 충돌
- pragma 깨짐
- macro 중복
- 컴파일 순서 오류
등이 발생할 가능성이 있음. 그래서 **sqlite3.c 는 “PCH 제외”** 필수.
설정2. Visual Studio에서 fopen 같은 C함수 보안 경고 없애기
sqlite3.c 파일 맨위에 아래 구문 추가.
#define _CRT_SECURE_NO_WARNINGS
설정3. /O2 최적화 . 최적화가 꺼져 있으면 SQLite 실행속도 특히 느려짐.
Configuration: Release
C/C++ → Optimization → /O2 (Max Optimizations)

설정4. SQLite 스레드 안전 설정.
SQLite3.c 파일 제일위에 아래처럼 기록한다.

SQLite 사용예
#include "sqlite3.h"
void test_sqlite()
{
sqlite3* db;
sqlite3_open("test.db", &db);
const char* sql =
"CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT);"
"INSERT INTO user (name) VALUES ('test');";
char* errMsg = nullptr;
sqlite3_exec(db, sql, nullptr, nullptr, &errMsg);
sqlite3_close(db);
}
팁.
SQLite 활용시 내가 사용하기 편한 래퍼 클래스 만들어서 활용함이 정석이며 이를 static 라이브러리 프로젝트로 만들어 두면 유지보수 측면에서 매우 유용하다.
VC++ . 정적 라이브러리 .Static Library
Static 라이브러리Static 라이브러리는 .h, .cpp로 구현된 클래스 소스를 단일 위치에서 일관되게 관리하기 위한 매우 현실적인 수단이다.특정 기능이나 도메인 로직을 하나의 static 라이브러리 프로
igotit.tistory.com
상위 정리
Visual Studio , Visual C++ 활용 정리.
Visual Studio C++ 활용 Visual StudioVisual C++ / C#1.설치, 설정 주제 비고. Visual Studio 2010 설치. Visual Studio 2013 (Community)무료 설치. Visaul Studio 2015 (Community)무료 설치.- Visual Studio 2015 버전은 이전 버전대비 급
igotit.tistory.com
연관
SQLite. 개요. 다운로드. implicit linking 위한 dll, h, lib 파일 확보.
SQLite 개요. 무료 로컬 RDBMS(관계형 데이터베이스 관리시스템)특징. 1. 로컬전용. 서버기능없음.2. 무설치, DB관련 단 1개의 파일.- 응용프로그램에서 도입편리.- SQLite 포함된 응용프로그램 배포편리
igotit.tistory.com
첫 등록 : 2025.11.26
최종 수정 :
단축 주소 : https://igotit.tistory.com/6321
'VisualStudio.C++.C#' 카테고리의 다른 글
| Qt . QCustomPlot 개요 . 활용 기본 . (0) | 2025.12.29 |
|---|---|
| Qt . 개요 . 포터블 개발환경 구축 . (0) | 2025.12.29 |
| Visual C++ 2022 . 클래스 위저드 오류 해결. E_FAIL has been returned from a call to a COM component (0) | 2025.10.30 |
| Visual Studio 2022 . Unity 개발 환경 추가 설치 (0) | 2025.07.16 |
| ONNX . Visual C++ 에서 ONNX 개발 환경 구축 (0) | 2024.08.29 |
댓글