Docs Menu
Docs Home
/ / /
C 드라이버

소스에서 C 드라이버 라이브러리 빌드

이 페이지의 내용

  • 버전 선택
  • 소스 가져오기
  • Git을 사용하여 다운로드
  • 릴리스 아카이브 다운로드
  • 전제 조건 얻기
  • libbson 구성
  • 프로젝트 빌드
  • 빌드된 결과 설치
  • libmongoc으로 구성
  • 각주

이 페이지에서는 소스 코드 에서 libbsonlibmongoc 라이브러리를 다운로드, 압축 풀기, 구성 및 빌드 하는 방법을 자세히 설명합니다.

추가 정보

이와 같은 경고에는 튜토리얼을 완료하는 데 필요하지 않은 예비 정보와 설명 세부 정보가 포함되어 있지만, 호기심이 많은 독자와 특정 튜토리얼 단계의 의미에 대한 설명을 원하는 고급 사용자에게는 유용할 수 있습니다.

다음 페이지에서는 몇 가지 명명된 변수를 사용하여 $VERSION 과 같은 구성 정보를 나타냅니다. 튜토리얼을 시작하기 전에 이러한 변수의 값을 선택해야 합니다. 튜토리얼 단계에서 참조된 변수가 표시되면 해당 값을 대체합니다.

다음도 참조하세요.

라이브러리를 빌드 하기 전에 지원되는 플랫폼에서 실행 확인하세요. 지원되는 플랫폼 목록은 호환성 페이지의 플랫폼호환성을 참조하세요.

시작하기 전에 mongo-c-driver 다운로드할 버전을 확인하세요. 사용 가능한 버전 목록은 GitHub 리포지토리 태그 페이지 에서 확인할 수 있습니다. 이 튜토리얼에서는 현재 운전자 버전인 v 을(를) 문서화합니다. .1 291.

이 페이지의 나머지 부분에서 $VERSION 는 이 튜토리얼을 위해 빌드할 mongo-c-driver 의 버전 번호를 나타냅니다.

다음 방법 중 하나를 사용하여 mongo-c-driver 소스 코드 를 가져옵니다.

중요

신규 사용자는 개발 브랜치에서 빌드하는 것보다 안정적으로 릴리스된 버전의 운전자 를 사용하는 것이 좋습니다 . git clone 또는 리포지토리 의 아카이브를 다운로드 할 때 출시하다 태그를 지정하다 (예: Git의 --branch 인수 사용)를 지정해야 합니다.

Git을 사용하여 GitHub에서 C 운전자 리포지토리 를 복제할 수 있습니다. 릴리스된 버전의 Git 태그 이름은 해당 버전의 이름을 따서 지정됩니다(예: "1.29.1"). 명령줄 에서 리포지토리 를 복제하려면 다음 명령을 사용합니다.

$ git clone https://github.com/mongodb/mongo-c-driver.git --branch="$VERSION" "$SOURCE"

이름과 달리 git-clone 명령의 --branch 옵션을 사용하여 리포지토리 태그에서 복제할 수 있습니다.

리포지토리의 릴리스 페이지에서 C 운전자 리포지토리 의 보관된 스냅샷 을 가져올 수 있습니다. 모든 출시하다 에는 빌드 에 mongo-c-driver-x.y.z.tar.gz 필요한 최소한의 파일 설정하다 가 포함된 아카이브가 포함되어 있습니다.

## Download using wget:
$ wget "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/$VERSION.tar.gz" \
--output-document="mongo-c-driver-$VERSION.tar.gz"
## Extract using tar:
$ tar xf "mongo-c-driver-$VERSION.tar.gz"

앞의 명령은 명령을 실행한 디렉토리 내에 운전자 소스 트리의 루트인 mongo-c-driver-$VERSION 디렉토리 를 만듭니다. 이 문서에서는 이 디렉토리 를 $SOURCE 이라고 합니다. $SOURCE 디렉토리 에는 최상위 CMakeLists.txt 파일 이 포함되어 있습니다.

## Using curl:
$ curl "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/$VERSION.tar.gz" \
--output="mongo-c-driver-$VERSION.tar.gz"
## Extract using tar:
$ tar xf "mongo-c-driver-$VERSION.tar.gz"

앞의 명령은 명령을 실행한 디렉토리 내에 운전자 소스 트리의 루트인 mongo-c-driver-$VERSION 디렉토리 를 만듭니다. 이 문서에서는 이 디렉토리 를 $SOURCE 이라고 합니다. $SOURCE 디렉토리 에는 최상위 CMakeLists.txt 파일 이 포함되어 있습니다.

## Use Invoke-WebRequest:
PS> $url = "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/$VERSION.zip"
PS> $file = "mongo-c-driver-$VERSION.zip"
PS> Invoke-WebRequest -UseBasicParsing -Uri $url -OutFile $file
## Extract using Expand-Archive:
PS> Expand-Archive mongo-c-driver-$VERSION.zip

앞의 명령은 명령을 실행한 디렉토리 내에 mongo-c-driver-$VERSION 디렉토리 를 만듭니다. mongo-c-driver-$VERSION 디렉토리 에는 운전자 소스 트리의 루트인 두 번째 mongo-c-driver-$VERSION 디렉토리 가 포함되어 있습니다. 이 문서에서는 이 디렉토리 를 $SOURCE 이라고 합니다. $SOURCE 디렉토리 에는 최상위 CMakeLists.txt 파일 이 포함되어 있습니다.

프로젝트를 구성하려면 CMake를 설치해야 libmongoc libbson 합니다. 플랫폼에 사용할 수 있는 안정적인 최신 버전의 CMake를 다운로드 하는 것이 좋습니다.

운영 체제에 해당하는 탭 을 선택하고 지침에 따라 CMake를 다운로드 합니다.

  1. CMake 다운로드 페이지를 방문합니다.

  2. CMake .msi 또는 .dmg 파일 을 다운로드하여 CMake를 설치하는 데 사용합니다.

  1. CMake 다운로드 페이지방문

  2. .sh 로 끝나는 자동 압축 풀림 셸 스크립트 를 다운로드합니다.

  3. sh 유틸리티를 사용하고 적절한 인수를 전달하여 스크립트 를 실행하여 설치를 수행합니다. 예를 예시 x86_64 플랫폼의 CMake 3.27.0 을 사용하여 다음 명령을 실행 합니다.

    sh cmake-3.27.0-linux-x86_64.sh --prefix="$HOME/.local" --exclude-subdir --skip-license

    $HOME/.local/bin$PATH 목록에 있다고 가정하면 3.27.0 에 대한 cmake 명령을 사용할 수 있게 됩니다.

    --help 옵션을 shell 스크립트에 전달하면 자세한 내용을 확인할 수 있습니다.

이 페이지에서는 cmakePATH 환경 변수에서 명령으로 사용할 수 있고 셸 에서 'cmake'로 실행할 수 있다고 가정합니다. 다음 코드에 표시된 대로 명령줄 에서 CMake에 --version 를 요청하여 이를 테스트할 수 있습니다.

cmake --version
cmake version 3.21.4
CMake suite maintained and supported by Kitware (kitware.com/cmake).

참고

libbson 빌드하려는 경우 빌드에는 CMake로 충분합니다. 추가 C 드라이버 기능을 사용하려면 추가 외부 종속성을 설치해야 할 수 있지만 여기서는 걱정하지 않습니다.

중요

Xcode [1] 또는 Visual Studio [2] 를 사용하여 빌드하는 경우 해당 도구 체인을 사용할 수 있는 특수 환경 내에서 CMake를 실행해야 할 수 있습니다.

이름 $BUILD 을(를) 경로 $SOURCE/_build 로 설정합니다. 이 디렉토리는 CMake가 빌드한 파일을 작성할 디렉토리입니다.

mongo-c-driver 의 소스 디렉토리가 $SOURCE 이고 빌드 디렉토리가 $BUILD 인 경우, 명령줄에서 다음 명령을 실행하여 libbsonlibmongoc 를 모두 사용하여 프로젝트를 구성할 수 있습니다.

$ cmake -S $SOURCE -B $BUILD \
-D ENABLE_EXTRA_ALIGNMENT=OFF \
-D ENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF \
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
-D BUILD_VERSION="$VERSION" \
-D ENABLE_MONGOC=OFF

모든 종속성이 충족되면 위 명령이 성공하고 다음으로 끝나야 합니다.

$ cmake …
## … (Lines of output) …
-- Generating done
-- Build files have been written to: $BUILD

오류로 인해 구성이 실패한 경우 오류 메시지 및 정보는 CMake 출력을 참조하세요. 계속 진행하기 전에 구성이 성공했는지 확인합니다.

이러한 CMake 인수는 무엇을 의미하나요?

BUILD_VERSION 는 빌드 결과에 포함될 버전 번호를 설정합니다. 이 값은 소스 가져오기에서 다운로드한 소스 드라이버의 버전과 동일한 값으로 설정해야 합니다 .

ENABLE_EXTRA_ALIGNMENTENABLE_AUTOMATIC_INIT_AND_CLEANUPmongo-c-driver 의 일부이며, ABI 호환성을 위해서만 기본적으로 활성화되는 더 이상 사용되지 않는 기능에 해당합니다. 가능하면 이러한 기능을 비활성화하는 것이 좋습니다.

ENABLE_MONGOC=OFF 인수가 libmongoc 건물을 비활성화했습니다. 다음 섹션에서 이를 빌드해 보겠습니다.

CMAKE_BUILD_TYPE 설정은 생성될 코드 변형을 CMake에 알려줍니다. RelWithDebInfo 의 경우 최적화된 바이너리가 생성되지만 디버그 정보는 여전히 포함됩니다. CMAKE_BUILD_TYPE 다중 구성 생성기에는 영향을 주지 않습니다(예: Visual Studio), 빌드/설치 시 --config 옵션을 대신 사용합니다.

프로젝트를 성공적으로 구성한 후 CMake를 사용하여 빌드를 실행할 수 있습니다.

$ cmake --build $BUILD --config RelWithDebInfo --parallel

올바르게 구성되고 모든 종속성이 충족되면 위 명령을 계속 실행하여 구성된 구성 요소를 컴파일하고 연결해야 합니다. 위의 명령이 실패하면 환경에 오류가 있거나 지원되지 않거나 테스트되지 않은 플랫폼을 사용하고 있을 수 있습니다. 자세한 내용은 빌드 도구 출력을 참조하세요.

--config 옵션

--config 옵션은 다중 구성 생성기의 경우 사용할 빌드 구성을 설정하는 데 사용됩니다(예: Visual Studio). 다른 생성기에는 영향을 주지 않으며 대신 CMAKE_BUILD_TYPE 을(를) 사용합니다.

$PREFIX$SOURCE/_install 경로로 설정합니다. CMake를 사용하여 빌드된 결과를 설치할 수 있습니다.

$ cmake --install "$BUILD" --prefix "$PREFIX" --config RelWithDebInfo

이 명령은 mongo-c-driver 빌드 결과를 $PREFIX 디렉토리 에 설치합니다.

--config 옵션

--config 옵션은 다중 구성 생성기에만 사용됩니다(예: Visual Studio)이며 그렇지 않은 경우 무시됩니다. --config 에 지정된 값은 cmake --build--config 에 지정된 값과 동일해야 합니다.

libbson 구성 부터 시작하여 위의 단계를 수행한 경우 최종 결과에는 전체 C 데이터베이스 드라이버 라이브러리가 아닌 libbson 만 포함됩니다. libmongoc 빌드는 ENABLE_MONGOC CMake 변수를 사용하여 활성화/비활성화합니다. CMake를 다시 실행하되 ENABLE_MONGOCTRUE 로 설정합니다.

$ cmake -D ENABLE_MONGOC=ON $BUILD

위의 명령이 성공하면 프로젝트가 libmongoc 으로 빌드되도록 재구성된 것입니다. 프로젝트 빌드하기 및 빌드 된 결과 설치하기 의 프로세스에 따라 libmongoc 을 빌드하고 설치합니다.

[1] Xcode를 사용하여 프로젝트 를 구성하고 빌드 하려면 환경에서 Xcode 명령줄 도구를 설치하고 사용할 수 있도록 설정해야 합니다. 명령줄 환경에서 다음을 실행.
$ xcode-select --install
이렇게 하면 $PATH 에서 컴파일러와 링커를 사용할 수 있습니다.
[2] Microsoft Visual C++ 를 사용하여 프로젝트 를 구성하고 빌드 하려면 CMake 또는 빌드 명령을 실행 때 Visual C++ 도구 및 환경 변수를 설정하다 해야 할 수 있습니다. 대부분의 경우 CMake는 Visual Studio 설치를 감지하고 자동으로 로드합니다. 실행될 때 환경 자체. 이 자동 감지는 CMake의 -G, -T-A 옵션으로 제어할 수 있습니다. -G 옵션은 사용할 Visual Studio 버전을 선택하므로 가장 중요합니다. 지원되는 Visual Studio 버전은 설치한 CMake 버전에 따라 다릅니다. 지원되는 Visual Studio 버전 목록은 여기에서 확인할 수 있습니다.더 효과적으로 제어하고 더 많은 도구 옵션을 사용하려면 Visual Studio 개발자 PowerShell (권장) 또는 개발자 명령 프롬프트 (레거시)에서 명령을 실행 하는 것이 좋습니다. 자세한내용은 Visual Studio 개발자 명령 프롬프트 및 개발자 PowerShell참조하세요. 명령줄 에서 Microsoft C++ 도구 세트 사용 Microsoft Visual Studio 문서 페이지에서 확인할 수 있습니다.

돌아가기

데이터 집계