'Program Lang./cmake'에 해당되는 글 2건

  1. 2021.01.12 2. cmake tutorial 2 - binary target (library)
  2. 2021.01.10 1. cmake tutorial 1 - binary target (executable)

2. cmake tutorial 2 - binary target (library)

Program Lang./cmake 2021. 1. 12. 02:11

1. 소스 트리

 

tutorial2 핵심은 myhellow.cpp와 myhellow.hpp 파일을 이용해서 library라는 target을 만드는 것이다.

생성된 library를 실행파일에 최종적으로 연결까지 해 본다.

 

2. CMakeLists.txt 파일

 

앞 장의 basic 편에서 다루었던 부분에 추가된 부분만 설명한다.

add_library는 binary library를 생성하는 명령어이다.

  • add_library
    • myhellow는 생성될 library의 이름이며, 뒤 이어지는 것은 소스 파일들이다.
    • option으로는 STATIC, MODULE, SHARED가 있으며, default는 STATIC 이다.
  • target_link_libraries
    • 실행파일 (Target이라 한다)에 링크될 library를 지정하는 명령어이다.
    • ${PROJECT_NAME}은 실행파일인 target이름이며, 뒤 이어지는 것은 링크될 library 이름이다.
    • 옵션으로는 PRIVATE/PUBLIC/INTERFACE가 있다.
    • cmake.org/cmake/help/latest/command/target_link_libraries.html

 

3. tutorial2.cpp 파일

 

테스트를 위한 기본적인 파일이다.

 

 

4. cmake 실행 결과

 

Out 디렉토리에서 cmake .. 을 수행하면, static library가 생성될 것이다. 이 상태에서 shared library를 생성하고자 하면

Out 디렉토리에서 cmake -D BUILD_SHARED_LIBS=TRUE ../ 을 수행하면 된다.

 

5. git repository

 

아래 개인 git repository에 정리한다.

 

github.com/heesoon/cmake_tutorials/tree/main/tutorial2

'Program Lang. > cmake' 카테고리의 다른 글

1. cmake tutorial 1 - binary target (executable)  (0) 2021.01.10
:

1. cmake tutorial 1 - binary target (executable)

Program Lang./cmake 2021. 1. 10. 01:37

1. 소스 트리

 

tutorial1 디렉토리 초기 구성은 아래 그림과 같다.

기본적으로 cmake를 위한 CMakeLists.txt 파일과 소스 파일인 tutorial1.cpp 파일이다.

Out 디렉토리는 임의적으로 제가 생성한 것이고, cmake의 모든 결과를 Out 디렉토리에 넣고자 한다.

현재 Out 디렉토리는 cmake 수행 전이라서 비어 있는 상태이다.

 

참고 : cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html

 

 

2. 기본 CMakeLists.txt 파일

 

CMakeLists.txt 파일의 가장 기본 구성요소는 아래와 같다.

  • cmake_minimum_required(VERSION 3.10)
    • cmake 최소 버전. 나의 경우 ubuntu command 창에서 cmake --version 정보로 확인한 값을 적어주었다.
  • project(tutorial1)
    • tutorial1 이라는 프로젝트명을 주었다
    • project( ) 명령어 지정한 프로젝트명은 PROJECT_NAME 변수에 저장된다.
  • add_executable(tutorial tutorial1.cpp)
    • add_executable은 실행가능한 Target을 만들기 위한 명령어이다.
    • tutorial1 이라는 실행파일을 tutorial1.cpp을 빌드해서 만들겠다는 의미이다.
    • 실행파일에 포함될 소스 파일들은 공백으로 뒤에 쭉 적어주면 된다.

 

3. tutorial1.cpp 파일

 

테스트를 위한 기본적인 파일이다.

 

 

4. cmake 실행 결과

 

tutorial1 디렉토리에서 아래와 같은 순서로 명령어를 실행한다.

  • cd Out
  • cmake ..
  • make

cmake의 모든 결과가 Out 디렉토리에 생성된 것을 확인할 수 있다. 이렇게 해야 관리가 편하다.

최종 실행 파일인 tutorial 파일도 Out 디렉토리에 생성된 것을 확인할 수 있다.

cmake 초기화하기 위해서는 Out 디렉토리 안의 내용을 모두 지우고 위의 명령어를 다시 수행하면 된다.

 

이를 기반으로 단계별로 정리하고자 한다.

 

5. git repository

 

아래 개인 git repository에 정리한다.

 

github.com/heesoon/cmake_tutorials/tree/main/tutorial1

'Program Lang. > cmake' 카테고리의 다른 글

2. cmake tutorial 2 - binary target (library)  (0) 2021.01.12
: