[c++] Cmake에서의 install()

About_work·2024년 10월 16일
0

c++

목록 보기
12/17
install(TARGETS calculator
        RUNTIME DESTINATION /usr/local/bin)  # 실행 파일 설치 경로

install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/
        DESTINATION /usr/local/include)  # 헤더 파일 설치 경로

install(TARGETS opencv_lib
        LIBRARY DESTINATION /usr/local/lib)  # 라이브러리 설치 경로
  • 이건 CMake에서 빌드한 파일을 특정한 경로에 복사(설치) 하는 과정을 정의한 거야. 각 명령어가 어떤 의미인지 하나씩 설명해줄게!

1. install() 명령이란?

  • CMake에서는 install() 명령을 사용해 빌드된 실행 파일, 헤더 파일, 라이브러리를 시스템 경로로 복사해.
  • 이렇게 설치해두면, 다른 프로그램들이 이 파일을 쉽게 찾고 사용할 수 있어.

2. 각 install() 명령의 의미

2.1 실행 파일 설치

install(TARGETS calculator
        RUNTIME DESTINATION /usr/local/bin)

🔍 설명

  • TARGETS calculator: calculator라는 실행 파일을 설치할 거야.

    • 이 실행 파일은 우리가 빌드할 때 만든 calculator 프로그램이야.
  • RUNTIME DESTINATION /usr/local/bin:

    • /usr/local/bin실행 파일이 저장되는 표준 경로야.
    • 이렇게 설치하면 터미널에서 어디서든지 calculator 명령을 실행할 수 있어.
    calculator  # 경로를 입력하지 않고도 실행 가능

2.2 헤더 파일 설치

install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/
        DESTINATION /usr/local/include)

🔍 설명

  • DIRECTORY ${CMAKE_SOURCE_DIR}/include/:

    • 우리가 만든 프로젝트의 include/ 폴더에 있는 헤더 파일들을 설치하겠다는 의미야.
    • CMAKE_SOURCE_DIR프로젝트의 루트 디렉토리를 가리켜.
  • DESTINATION /usr/local/include:

    • /usr/local/includeC++ 헤더 파일들이 설치되는 표준 경로야.
    • 이렇게 설치하면 다른 프로젝트들이 #include 구문을 통해 이 헤더 파일을 쉽게 가져올 수 있어.

    예:

    #include <Calculator.h>  // 헤더 파일을 설치한 후 사용할 수 있음

2.3 라이브러리 파일 설치

install(TARGETS opencv_lib
        LIBRARY DESTINATION /usr/local/lib)

🔍 설명

  • TARGETS opencv_lib:

    • opencv_lib이라는 이름의 라이브러리 파일(예: libopencv.so) 을 설치할 거야.
    • 이 라이브러리는 OpenCV를 빌드하면서 만들어진 공유 라이브러리야.
  • LIBRARY DESTINATION /usr/local/lib:

    • /usr/local/lib공유 라이브러리(.so 또는 .a 파일) 들이 설치되는 표준 경로야.
    • 이렇게 설치하면 다른 프로그램들이 이 라이브러리를 쉽게 링크할 수 있어.

    예:

    target_link_libraries(my_project ${OpenCV_LIBS})

3. 전체 흐름 정리

  1. 실행 파일/usr/local/bin에 설치되어 터미널에서 쉽게 실행할 수 있어.
  2. 헤더 파일/usr/local/include에 설치되어 다른 C++ 프로젝트에서 #include로 쉽게 참조할 수 있어.
  3. 라이브러리 파일/usr/local/lib에 설치되어 다른 프로젝트가 컴파일할 때 링크할 수 있어.

4. 이 과정의 필요성

  • 이런 설치 과정을 통해 복잡한 소스 코드나 라이브러리를 직접 관리할 필요 없이 다른 프로젝트들이 간단히 사용할 수 있게 해.
  • Python의 pip install 처럼, 시스템에 한 번 설치해두면 다른 코드들이 어디서든 바로 사용할 수 있게 되는 거야!
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글