소스에서 C 드라이버 라이브러리 빌드
이 페이지에서는 소스 코드 에서 libbson
및 libmongoc
라이브러리를 다운로드, 압축 풀기, 구성 및 빌드 하는 방법을 자세히 설명합니다.
팁
추가 정보
이와 같은 경고에는 튜토리얼을 완료하는 데 필요하지 않은 예비 정보와 설명 세부 정보가 포함되어 있지만, 호기심이 많은 독자와 특정 튜토리얼 단계의 의미에 대한 설명을 원하는 고급 사용자에게는 유용할 수 있습니다.
다음 페이지에서는 몇 가지 명명된 변수를 사용하여 $VERSION
과 같은 구성 정보를 나타냅니다. 튜토리얼을 시작하기 전에 이러한 변수의 값을 선택해야 합니다. 튜토리얼 단계에서 참조된 변수가 표시되면 해당 값을 대체합니다.
버전 선택
시작하기 전에 mongo-c-driver
다운로드할 버전을 확인하세요. 사용 가능한 버전 목록은 GitHub 리포지토리 태그 페이지 에서 확인할 수 있습니다. 이 튜토리얼에서는 현재 운전자 버전인 v 을(를) 문서화합니다. .1 291.
이 페이지의 나머지 부분에서 $VERSION
는 이 튜토리얼을 위해 빌드할 mongo-c-driver
의 버전 번호를 나타냅니다.
소스 가져오기
다음 방법 중 하나를 사용하여 mongo-c-driver
소스 코드 를 가져옵니다.
을(를) 사용하여 리포지토리 를 복제합니다(권장). 자세한 내용은
git
Git을 사용하여 다운로드를 참조하세요.특정 버전의 소스 아카이브를 다운로드합니다. 자세한 내용은 릴리스 보관 다운로드를 참조하세요.
중요
신규 사용자는 개발 브랜치에서 빌드하는 것보다 안정적으로 릴리스된 버전의 운전자 를 사용하는 것이 좋습니다 . git clone
또는 리포지토리 의 아카이브를 다운로드 할 때 출시하다 태그를 지정하다 (예: Git의 --branch
인수 사용)를 지정해야 합니다.
Git을 사용하여 다운로드
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를 다운로드 합니다.
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 문서 페이지에서 확인할 수 있습니다. |