소스에서 C 드라이버 라이브러리 빌드
이 페이지에서는 소스 코드 에서 libbson
및 libmongoc
라이브러리를 다운로드, 압축 해제, 구성 및 빌드 방법을 자세히 설명합니다.
팁
추가 정보
이와 같은 경고에는 튜토리얼을 완료하는 데 필요하지 않은 예비 정보와 설명 세부 정보가 포함되어 있지만, 호기심이 많은 독자와 특정 튜토리얼 단계의 의미에 대한 설명을 원하는 고급 사용자에게는 유용할 수 있습니다.
다음 페이지에서는 몇 가지 명명된 변수를 사용하여 $VERSION
과 같은 구성 정보를 나타냅니다. 튜토리얼을 시작하기 전에 이러한 변수의 값을 선택해야 합니다. 튜토리얼 단계에서 참조된 변수가 표시되면 해당 값을 대체합니다.
버전 선택
시작하기 전에 다운로드할 mongo-c-driver
버전을 확인하세요. 사용 가능한 버전 목록은 Github 리포지토리 태그 페이지 에서 확인할 수 있습니다. 이 튜토리얼에서는 현재 운전자 버전인 v1.30.0를 문서화합니다.
이 페이지의 나머지 부분에서 $VERSION
는 이 튜토리얼을 위해 빌드할 mongo-c-driver
의 버전 번호를 나타냅니다.
소스 가져오기
다음 방법 중 하나를 사용하여 mongo-c-driver
소스 코드 가져옵니다.
git
을(를) 사용하여 리포지토리 복제합니다(권장). 자세한내용은 Git을 사용하여 다운로드를 참조하세요.특정 버전의 소스 아카이브를 다운로드합니다. 자세한 내용은 릴리스 보관 다운로드를 참조하세요.
중요
신규 사용자는 개발 브랜치에서 빌드하는 것보다 안정적으로 릴리스된 버전의 운전자 를 사용하는 것이 좋습니다 . git clone
또는 리포지토리 의 아카이브를 다운로드 할 때 출시하다 태그를 지정하다 (예: Git의 --branch
인수 사용)를 지정해야 합니다.
Git을 사용하여 다운로드
Git을 사용하여 Github 에서 C 운전자 리포지토리 복제할 수 있습니다. 릴리스된 버전의 Git 태그는 해당하는 버전의 이름을 따서 지정됩니다(예: "1.30.0"). 명령줄 에서 리포지토리 복제하려면 다음 명령을 사용합니다.
$ 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
파일 포함되어 있습니다.
전제 조건 얻기
libmongoc
및 libbson
프로젝트를 구성하려면 CMake를 설치해야 합니다. 플랫폼에 사용할 수 있는 안정적인 최신 버전의 CMake를 다운로드 것이 좋습니다.
운영 체제에 해당하는 탭 선택하고 지침에 따라 CMake를 다운로드 .
CMake
.msi
또는.dmg
파일 다운로드하여 CMake를 설치하는 데 사용합니다.
.sh
로 끝나는 자동 압축 풀림 셸 스크립트 다운로드합니다.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 스크립트에 전달하면 자세한 내용을 확인할 수 있습니다.
이 페이지에서는 cmake
을 PATH
환경 변수에서 명령으로 사용할 수 있고 셸 에서 "cmake
" 로 실행할 수 있다고 가정합니다. 다음 코드에 표시된 대로 명령줄 에서 CMake에 --version
를 요청하여 이를 테스트할 수 있습니다.
cmake --version cmake version 3.21.4 CMake suite maintained and supported by Kitware (kitware.com/cmake).
참고
libbson
만 빌드하려는 경우 빌드에는 CMake로 충분합니다. 추가 C 드라이버 기능을 사용하려면 추가 외부 종속성을 설치해야 할 수 있지만 여기서는 걱정하지 않습니다.
libbson 구성
이름 $BUILD
을(를) 경로 $SOURCE/_build
로 설정합니다. 이 디렉토리는 CMake가 빌드한 파일을 작성할 디렉토리입니다.
mongo-c-driver
의 소스 디렉토리가 $SOURCE
이고 빌드 디렉토리가 $BUILD
인 경우, 명령줄에서 다음 명령을 실행하여 libbson
및 libmongoc
를 모두 사용하여 프로젝트를 구성할 수 있습니다.
$ 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_ALIGNMENT
및 ENABLE_AUTOMATIC_INIT_AND_CLEANUP
은 mongo-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
에 지정된 값과 동일해야 합니다.
libmongoc으로 구성
libbson 구성 부터 시작하여 위의 단계를 수행한 경우 최종 결과에는 전체 C 데이터베이스 드라이버 라이브러리가 아닌 libbson
만 포함됩니다. libmongoc
빌드는 ENABLE_MONGOC
CMake 변수를 사용하여 활성화/비활성화합니다. CMake를 다시 실행하되 ENABLE_MONGOC
를 TRUE
로 설정합니다.
$ cmake -D ENABLE_MONGOC=ON $BUILD
위의 명령이 성공하면 프로젝트가 libmongoc
으로 빌드되도록 재구성된 것입니다. 프로젝트 빌드하기 및 빌드 된 결과 설치하기 의 프로세스에 따라 libmongoc
을 빌드하고 설치합니다.
각주
[1] | Xcode를 사용하여 프로젝트 를 구성하고 빌드 하려면 환경에서 Xcode 명령줄 도구를 설치하고 사용할 수 있도록 설정해야 합니다. 명령줄 환경에서 다음을 실행.
$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 문서 페이지에서 확인할 수 있습니다. |