티스토리 뷰

최근 C로 만든 라이브러리를 Build 해야할 필요가 생겼다.


C라고는 전혀 건드려보지도 않았는데, 먹고 살라면 뭐든 찾아내고 적응해서 해야한다. 그게 개발자의 숙명....


CMake란 make를 편하게 해주기 위한 것 정도라고 이해하면 되려나...


Overview 첫 시작에 다음과 같은 텍스트가 있다.


CMake is an extensible, open-source system that manages the build process in an operating system and in a compiler-independent manner. Unlike many cross-platform systems, CMake is designed to be used in conjunction with the native build environment. Simple configuration files placed in each source directory (called CMakeLists.txt files) are used to generate standard build files (e.g., makefiles on Unix and projects/workspaces in Windows MSVC) which are used in the usual way. 


해석하자면...


CMake란 확장 가능한 오픈소스 시스템(운영체제의 빌드 프로세스와 독립적인 컴파일러 방식을 관리하는) 이다. 많은 크로스 플랫폼 시스템이 있음에도 불구하고, CMake는 native build 환경과 결합되어 사용되도록 디자인 되었다. 각 소스 디렉토리에 단순 설정 파일을 위치시킴으로서 통상적인 방법을 따르는 표준 빌드 파일을 generate하는데 쓰인다.


고 한다.


고로 CMakeLists.txt 파일을 통해 간단한 설정만으로 다양한 native 환경에 맞춰 build 할 수 있게 해준다고 한다.


내 경우엔,


C로 만들어진 코드를 build한 후, 이를 JNI를 이용하여 내가 만든 NATIVE APP에서 사용하는 것이 목적이다.




일단 CMake 설치는 CentOS 에서 yum 을 이용하여 먼저 진행할 수 있다.


그러나 이렇게 하면 2.8.11 버전이 설치된다...


내가 필요한 것은 3.0 이상이다...


yum 을 이용해서 CMake 3.0 이상의 버전을 설치하는 것은 아직 찾지 못했다.


그래서 CMake를 수동으로 설치하기로 마음 먹었다.


CMake를 수동으로 설치하는 과정은 다음과 같다.


1. CMake가 설치될 경로를 참조하자.


/usr/bin 폴더 하위에 CMake 관련 실행 파일이 설치되어 있는 바,

(yum 을 이용하여 install 하였을 때, 발견할 수 있다. 설치한 적이 없으면 여기 파일이 없다) 


해당 파일은 cmake, ctest, cpack, ccmake, cmake-gui 가 있다.


2. 무엇을 가지고 설치할 것인지 결정하자.


설치할 대상 binary를 https://cmake.org/ 에서 다운로드 받을 수 있다.

다운로드를 gz 타입의 tar로 받을 것인지, Z 타입의 tar로 받을 것인지, 아니면 설치용 shell script를 받을 것인지 선택할 수 있다.

나는 설치용 shell script를 다운받았다.


3. 설치 과정


먼저 shell script를 내려받는다.


# wget https://cmake.org/files/v3.6/cmake-3.6.2-Linux-x86_64.sh


내려받은 파일의 mod를 변경한다.


# chmod 775 cmake-3.6.2-Linux-x86_64.sh


shell을 실행한다.


# ./cmake-3.6.2-Linux-x86_64.sh


shell을 실행하면 다음과 같은 폴더가 생긴다.


/cmake-3.6.2-Linux-x86_64/


폴더의 권한을 root로 변경한다. (나는 root 계정만 이용하고 있다.)


# chown -R root:root ./cmake-3.6.2-Linux-x86_64/


압축 푼 폴더를 현재 위치에 둘 것이 아니면, 적당한 곳으로 이동한다. 나는 /usr/bin/ 하위에 놓았다.


# mv cmake-3.6.2-Linux-x86_64 /usr/bin/


자 이제부터가 중요하다.


yum으로 이미 cmake를 설치했다면, cmake, ctest, cpack, ccmake, cmake-gui 파일이 /usr/bin 내부에 위치한다.


이를 백업할 것인지, 안 할 것인지 본인이 선택하는 것이지만... 혹시 모르면 백업하도록 한다.


폴더를 만들고 해당 파일을 옮긴다.


# mv /usr/bin/cmake ./

# mv /usr/bin/ccmake ./

# mv /usr/bin/ctest ./

# mv /usr/bin/cpack ./

# mv /usr/bin/cmake-gui ./ (이 파일은 없을 수도 있다. 내가 봤던 2.8.11에선 yum으로 설치해도 이놈이 보이지 않았다.)


자 다 옮겼으면 설치된 3.6.2 버전의 실행 파일을 /usr/bin/ 폴더 안에 symbolic link를 생성한다.


# ln -s -f /usr/bin/cmake-3.6.2-Linux-x86_64/bin/cmake cmake

# ln -s -f /usr/bin/cmake-3.6.2-Linux-x86_64/bin/ctest ctest

# ln -s -f /usr/bin/cmake-3.6.2-Linux-x86_64/bin/cpack cpack

# ln -s -f /usr/bin/cmake-3.6.2-Linux-x86_64/bin/ccmake ccmake


cmake를 실행하여 제대로 설치되었는지 확인한다.


# cmake --version


cmake version 3.6.2


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


위와 같이 나오면 제대로 설치된 것이다.

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함