[CMAKE 1] Basic

Sinaenjuni·2023년 7월 12일

CMAKE

목록 보기
1/4

1. CMake 란?

Target system에서 빌드할 수 있도록 도와주는 오픈 소스 소프트웨어이다. 빌드를 직접 하는것이 아니라 빌드에 필요한 커맨드를 생성해 준다.

Hardware architecture에 관계없이 c언어로 작성된 코드를 빌드, 테스트 그리고 설치를 도와주는 오픈 소스 소프트웨어이다.

2. Build 3rd party

  1. CMake install

    $ sudo apt install cmake
  2. get opnecv source code in github(https://github.com/opencv/opencv)

  3. make directories and move pwd

    mkdir build
    mkdir install
    cd build
  4. run cmake command
    빌드에 필요한 명령어들을 생성하는 과정을 수행한다.
    cmake_list.txt 파일이 존재하는 최상의 디렉터리의 경로를 지정해준다.

    $ cmake ../opencv/
  • debug mode
    $ cmake -DCMAKE_BUILD_TYPE=Debug ../opencv/

  • release mode
    $ cmake -DCMAKE_BUILD_TYPE=Release ../opencv/

  • select build system(generator)
    $ cmake -GNinja ../opencv/

  • set target directory 설치 경로를 지정할 수 있다. 같은 패키지의 다른 버전을 사용할 때 꼬일 수 있는 문제를 방지하며, 삭제도 디렉터리만 지우는 방법으로 편리하게 할 수 있다.
    $ cmake -DCMAKE_INSTALL_PREFIX=../install ../opencv/

    $ cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../install ../opencv/
    $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install ../opencv/

    extra module과 함께 build 하는 경우

    $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install \
    -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules -DBUILD_opencv_legacy=OFF ../opencv/ 

    cmake 명령을 수행하면 현재 디렉터리 안에 많은 파일들이 생성되는 것을 확인 할 수 있다.
    makefile: make build 시스템이 사용할 수 있는 명령어들을 기록해 둔 파일이다.

  1. run make command
    $ make 
    or parallel build (병렬 빌드)
    $ make -j1~n
    모든 CPU 자원을 사용해서 build 한다.
  1. run make install command
    라이브러리 링크 사용에 필요한 파일들만 CMAKE_INSTALL_PREFIX에 지정된 디렉터리 안으로 옮겨준다.
    $ sudo make install

0개의 댓글