Linux의 소스 OR-도구 C++에서 빌드

소개

이 가이드에서는 Linux에서 소스 또는 도구(C++ 지원)로 빌드하는 방법을 설명합니다.

소스 코드를 수정하거나 OR-Tools와 함께 서드 파티 솔버를 사용할 계획이 아니라면 패키지 설치를 사용하는 것이 좋습니다.

이 안내는 다른 Linux 변형에도 적용될 수 있지만 다음 요구사항을 충족하는 머신에서만 테스트했습니다.

  • Alpine Edge 64비트 (x86_64)
  • Centos 7 LTS 64비트 (x86_64)
  • Debian SID 64비트 (x86_64)
  • Debian 11 (bullseye) 64비트 (x86_64)
  • Fedora 38 64비트 (x86_64)
  • Fedora 37 64비트 (x86_64)
  • OpenSuse Leap 64비트 (x86_64)
  • Ubuntu 23.10 64비트 (x86_64)
  • Ubuntu 22.04 LTS 64비트 (x86_64)
  • Ubuntu 20.04 LTS 64비트 (x86_64)

기본 요건

다음 섹션에서는 OR-도구를 설치하기 위한 기본 요건을 설명합니다.

C++ 도구

C++ 도구를 설치하려면 터미널 창을 열고 다음을 입력합니다.

Alpine

apk add alpine-sdk linux-headers cmake lsb-release-minimal

센토스

sudo yum groupinstall -y 'Development Tools'
sudo yum install -y pkgconfig redhat-lsb-core

Debian

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Fedora

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

Fedora

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

OpenSUSE

sudo zypper refresh
sudo zypper install -y git gcc11 gcc11-c++ lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

소스 코드 다운로드하기

GitHub의 OR-도구 소스 코드에는 stablemain라는 서로 다른 두 가지 브랜치가 있습니다.

stable 브랜치는 철저한 테스트를 거쳤으며 지원되는 모든 플랫폼에서 원활하게 작동합니다.
main 브랜치는 최신 업데이트 및 개선사항이 적용된 위치입니다. 더 최신 상태이지만 덜 안정적입니다.

안정적인 소스 코드 다운로드

다음 방법 중 하나를 사용하여 OR-도구의 안정적인 소스 코드를 가져올 수 있습니다.

  • 다음을 입력하여 stable 브랜치를 클론합니다.

    git clone https://github.com/google/or-tools
    
  • GitHub에서 Clone or download 버튼을 클릭하여 최신 출시 버전을 압축 파일로 다운로드합니다. 클론 또는 다운로드 버튼 이미지

기본 소스 코드 다운로드

main 브랜치에서 소스 코드를 검색하려면 다음을 입력합니다.

git clone -b main https://github.com/google/or-tools

이전 출시 버전 다운로드

다음 방법 중 하나를 사용하여 이전 버전의 소스 코드를 가져올 수 있습니다.

  • GitHub 출시 페이지에서 이전 출시 버전을 다운로드합니다.
  • (git clone로) 로컬 저장소를 이미 만들었다고 가정하면 Git 태그를 사용하여 특정 출시 버전을 체크아웃할 수 있습니다. 예를 들어 main 브랜치 대신 v9.9 출시로 작업하려면 로컬 저장소에 다음 명령어를 입력합니다.

    git fetch --all --tags --prune
    git checkout tags/v9.9 -v v9.9
    

빌드 구성

OR-Tools를 빌드하기 전에 CMake 빌드 시스템 생성기를 구성해야 합니다.

터미널을 열고 파일의 압축을 푼 디렉터리로 이동합니다. 그런 다음 아래 내용을 입력합니다.

cmake -S . -B build -DBUILD_DEPS=ON

자세한 내용은 CMake 문서를 참고하세요.

SCIP 사용

v7.8부터 SCIP가 통합되었으므로 수동으로 설치할 필요가 없습니다.

Gurobi 사용

이제 Gurobi가 사전 통합되었습니다. 필요한 경우 런타임 시 OR-Tools는 MAC OS X 및 Windows에 있는 Gurobi 설치 프로그램의 기본 설치 경로에서 또는 GUROBI_HOME 환경 변수를 사용하여 Gurobi 공유 라이브러리를 검색합니다.

서드 파티 MIP 솔버(선택사항) 사용

지원이 기본적으로 사용 중지된 다음의 서드 파티 MIP 솔버(선택사항)와 함께 OR-도구를 사용할 수도 있습니다.

자세한 내용은 이 문서를 참고하세요.

소스 코드 빌드

소스 코드를 빌드하려면 터미널을 열고 파일의 압축을 푼 디렉터리로 이동합니다. 그런 다음 다음 명령어를 입력하여 OR-Tools를 컴파일합니다.

cmake --build build --config Release --target all -j -v

자세한 내용은 CMake 문서를 참고하세요.

소스 코드 테스트

다음을 입력하면 모든 것이 올바르게 실행되고 있는지 확인할 수 있습니다.

cmake --build build --config Release --target test -v

OR 도구 예시를 실행합니다. 모든 예시가 성공적으로 실행되면 OR-Tools를 시작할 수 있습니다.

빌드 파일 정리

OR-Tools를 다시 설치해야 하는 경우 다음 명령어를 실행합니다.

rm -r build

컴파일된 종속 항목을 모두 삭제합니다. 이는 정리 상태로 재설정하는 데 유용할 수 있습니다.

그런 다음 명령어를 다시 입력합니다.

cmake -S . -B build -DBUILD_DEPS=ON

cmake --build build --config Release --target all -j -v

운영체제에 OR 도구 설치

다음을 입력하여 운영 체제에 C++용 OR-도구를 설치할 수 있습니다.

cmake --build build --config Release --target install -v