Share via


패키지 설치 및 사용 예제: SQLite

참고 항목

이 이전 예제에서는 클래식 모드를 사용하지만 대부분의 개발자는 매니페스트 모드에서 더 행복할 것입니다. 매니페스트 모드로 변환하는 예제는 매니페스트 모드: CMake 예제를 참조하세요.

1단계: 설치

먼저 포트 트리에서 SQLite의 이름을 알아야 합니다. 이렇게 하려면 명령을 실행하고 search 출력을 검사합니다.

PS D:\src\vcpkg> .\vcpkg search sqlite
libodb-sqlite        2.4.0            Sqlite support for the ODB ORM library
sqlite3              3.32.1           SQLite is a software library that implements a se...

If your library is not listed, please open an issue at:
    https://github.com/Microsoft/vcpkg/issues

목록을 보면 포트 이름이 "sqlite3"인 것을 볼 수 있습니다. 인수 없이 명령을 실행 search 하여 패키지의 전체 목록을 볼 수도 있습니다.

설치는 명령을 사용하는 install 것만큼 간단합니다.

PS D:\src\vcpkg> .\vcpkg install sqlite3
Computing installation plan...
The following packages will be built and installed:
    sqlite3[core]:x86-windows
Starting package 1/1: sqlite3:x86-windows
Building package sqlite3[core]:x86-windows...
-- Downloading https://sqlite.org/2020/sqlite-amalgamation-3320100.zip...
-- Extracting source C:/src/vcpkg/downloads/sqlite-amalgamation-3320100.zip
-- Applying patch fix-arm-uwp.patch
-- Using source at C:/src/vcpkg/buildtrees/sqlite3/src/3320100-15aeda126a.clean
-- Configuring x86-windows
-- Building x86-windows-dbg
-- Building x86-windows-rel
-- Performing post-build validation
-- Performing post-build validation done
Building package sqlite3[core]:x86-windows... done
Installing package sqlite3[core]:x86-windows...
Installing package sqlite3[core]:x86-windows... done
Elapsed time for package sqlite3:x86-windows: 12 s

Total elapsed time: 12.04 s

The package sqlite3:x86-windows provides CMake targets:

    find_package(unofficial-sqlite3 CONFIG REQUIRED)
    target_link_libraries(main PRIVATE unofficial::sqlite3::sqlite3))

명령을 실행 list 하여 sqlite3이 x86 Windows 데스크톱용으로 성공적으로 설치되었음을 검사 수 있습니다.

PS D:\src\vcpkg> .\vcpkg list
sqlite3:x86-windows         3.32.1           SQLite is a software library that implements a se...

유니버설 Windows 플랫폼 또는 x64 Desktop과 같은 다른 아키텍처 및 플랫폼에 설치하려면 패키지 이름을 접미사로 :<target>붙일 수 있습니다.

PS D:\src\vcpkg> .\vcpkg install sqlite3:x86-uwp zlib:x64-windows

지원되는 모든 대상을 참조 .\vcpkg help triplet 하세요.

2단계: 사용

VS/MSBuild 프로젝트(사용자 전체 통합)

vcpkg를 사용하는 권장되고 가장 생산적인 방법은 사용자 전체 통합을 통해 빌드하는 모든 프로젝트에 시스템을 사용할 수 있도록 하는 것입니다. 사용자 전체 통합은 지정된 컴퓨터에서 처음 사용될 때 관리자 액세스를 요청하지만, 그 후에는 더 이상 필요하지 않으며 사용자 단위로 통합이 구성됩니다.

PS D:\src\vcpkg> .\vcpkg integrate install
Applied user-wide integration for this vcpkg root.

All C++ projects can now #include any installed libraries.
Linking will be handled automatically.
Installing new libraries will make them instantly available.

참고 항목

Visual Studio를 다시 시작하거나 빌드를 수행하여 intellisense를 변경 내용으로 업데이트해야 합니다.

이제 Visual Studio에서 파일 -> 새 프로젝트를 간단히 사용할 수 있으며 라이브러리를 자동으로 사용할 수 있습니다. SQLite의 경우 C/C++ 샘플을 사용해 볼 수 있습니다.

사용자 .\vcpkg integrate remove에 대한 통합을 제거하려면 .

CMake(도구 체인 파일)

cmake와 함께 설치된 라이브러리를 사용하는 가장 좋은 방법은 도구 체인 파일을 scripts\buildsystems\vcpkg.cmake사용하는 것입니다. 이 파일을 사용하려면 CMake 명령줄에 다음으로 추가하면 됩니다.

-DCMAKE_TOOLCHAIN_FILE=D:\src\vcpkg\scripts\buildsystems\vcpkg.cmake.

Visual Studio에서 폴더 열기를 통해 CMake를 사용하는 경우 각 CMakeSettings.json 구성에 "변수" 섹션을 추가하여 정의 CMAKE_TOOLCHAIN_FILE 할 수 있습니다.

{
  "configurations": [{
    "name": "x86-Debug",
    "generator": "Visual Studio 15 2017",
    "configurationType" : "Debug",
    "buildRoot":  "${env.LOCALAPPDATA}\\CMakeBuild\\${workspaceHash}\\build\\${name}",
    "cmakeCommandArgs": "",
    "buildCommandArgs": "-m -v:minimal",
    "variables": [{
      "name": "CMAKE_TOOLCHAIN_FILE",
      "value": "D:\\src\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake"
    }]
  }]
}

참고 항목

전체 다시 생성을 강제로 적용하려면 수정된 각 구성의 CMake 캐시 폴더를 삭제해야 할 수 있습니다. CMake 메뉴에서 Cache (<configuration name>) 찾을 수 있습니다Delete Cache Folders.

이제 기본 파일을 사용하여 간단한 CMake 프로젝트를 만들어 보겠습니다.

# CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(test)

find_package(unofficial-sqlite3 CONFIG REQUIRED)

add_executable(main main.cpp)

target_link_libraries(main PRIVATE unofficial::sqlite3::sqlite3)
// main.cpp
#include <sqlite3.h>
#include <stdio.h>

int main()
{
    printf("%s\n", sqlite3_libversion());
    return 0;
}

그런 다음, 일반적인 CMake 방식으로 프로젝트를 빌드합니다.

PS D:\src\cmake-test> mkdir build 
PS D:\src\cmake-test> cd build
PS D:\src\cmake-test\build> cmake .. "-DCMAKE_TOOLCHAIN_FILE=D:\src\vcpkg\scripts\buildsystems\vcpkg.cmake"
    // omitted CMake output here //
-- Build files have been written to: D:/src/cmake-test/build
PS D:\src\cmake-test\build> cmake --build .
    // omitted MSBuild output here //
Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:02.38
PS D:\src\cmake-test\build> .\Debug\main.exe
3.15.0

참고 항목

x86-windows용으로 빌드할 때 올바른 sqlite3.dll이 출력 폴더에 자동으로 복사됩니다. 애플리케이션과 함께 배포해야 합니다.

네이티브 cmake 지원 없이 라이브러리 처리

다른 플랫폼과 달리 기본적으로 디렉터리를 컴파일 줄에 자동으로 추가 include\ 하지는 않습니다. CMake 통합을 제공하지 않는 라이브러리를 사용하는 경우 파일을 명시적으로 검색하고 사용하여 find_path()find_library()직접 추가해야 합니다.

# To find and use catch
find_path(CATCH_INCLUDE_DIR catch.hpp)
target_include_directories(main PRIVATE ${CATCH_INCLUDE_DIR})

# To find and use azure-storage-cpp
find_path(WASTORAGE_INCLUDE_DIR was/blob.h)
find_library(WASTORAGE_LIBRARY wastorage)
target_include_directories(main PRIVATE ${WASTORAGE_INCLUDE_DIR})
target_link_libraries(main PRIVATE ${WASTORAGE_LIBRARY})